2011-05-17 78 views
2

我有一類是NSObject的類型,並在視圖中它不會讓我把:addSubview與NSObject?

[self.view addSubview:nsObject]; 

,因爲它是不兼容的類型。我如何得到這個工作?

+0

NSObject是子視圖嗎? – Kal 2011-05-17 16:58:55

+1

你爲什麼試圖添加一個非UIView對象作爲子視圖到UIView? – 2011-05-17 16:59:13

回答

3

您需要將要添加的對象的類型爲UIView或從中繼承。在你的類聲明,簡單地說:

@interface MyClasS : UIView { 
+0

這裏的問題是,它不會讓我做任何我想做的事情。我希望它成爲它自己的對象,但我也希望它能在我的主視圖中顯示。 – Andrew 2011-05-17 17:04:50

+0

你試圖做什麼樣的東西,你不能通過繼承UIView? – 2011-05-17 17:05:30

+0

哦,我錯了。這是因爲我最初嘗試將它作爲一個UIView,出於某種原因,它並沒有工作,但作爲一個NSObject工作,並改變這個說UIView也適用。 – Andrew 2011-05-17 17:19:20

4

addSubview:方法只需要的UIView實例。它不適用於NSObject

退房在Apple Docs

-1

的方法規範我認爲nsSubview是的UIView的子類,只需鍵入,精氨酸經過編譯器把它看作一個NSObject?或者它是某種包含UIView的包裝對象?你可以試試:

UIView *v = (UIView *)nsSubview ; 
[ self.view addSubview:v] ; 
+2

C風格演員是危險的,除非你是某種指針是正確的類型,你將它們轉換爲 – 2011-05-17 17:03:09

+1

從來沒有這種情況下,演員應該是必要的。將非UIView子類作爲子視圖插入視圖是不可能的,並且希望它能正常工作。多態性只能合理做這麼多。 – bbum 2011-05-17 17:49:44

+0

(嘆氣)它似乎是一個快速的方法來弄清楚是怎麼回事因爲有限的其他信息 – Andrew 2011-05-17 23:03:01