2012-07-13 64 views
5

我用下面的代碼讓我查看了我的控制器:如果它是一個自定義類,獲取NSViewController的視圖?

CollectionItemView *myView = [self view]; 

這工作得很好,但我得到警告Incompatible pointer types initializing CollectionItemView __strong with an expression of type NSView。我明白爲什麼我得到這個,但它可以忽略它,或者我應該覆蓋視圖屬性?

夾頭

回答

2

如果您確信[self view]CollectionItemView只是做:

CollectionItemView *myView = (CollectionItemView*)[self view]; 

或(哪個好),你可以使用:

id myView = [self view]; 
0

沒有必要覆蓋它。 troolee已經提出了兩個工作解決方案。 但是,只是爲了節省,我寧願以不同的方式編寫代碼。

CollectionItemView *myView = nil; 
if ([[self view] isKindOfClass:[CollectionItemView class]) 
    self.view = (CollectionItemView*)[self view]; 

較短的版本,而isKindOfClass測試成功,當你肯定知道從該對象的類型必須爲CollectionItemView或任何其子類的上下文。

相關問題