Objective c 获取NSViewController';如果它是一个自定义类,则为s视图?

Objective c 获取NSViewController';如果它是一个自定义类,则为s视图?,objective-c,xcode,cocoa,nsview,nsviewcontroller,Objective C,Xcode,Cocoa,Nsview,Nsviewcontroller,我使用以下代码从控制器中取出视图: CollectionItemView *myView = [self view]; 这工作得很好,但我得到警告初始化CollectionItemView时指针类型不兼容\uuu strong,表达式类型为NSView。我理解为什么会出现这种情况,但是可以忽略它,还是应该覆盖view属性 chuck如果您确定[self view]是CollectionItemView只需执行以下操作: CollectionItemView *myView = (Collec

我使用以下代码从控制器中取出视图:

CollectionItemView *myView = [self view]; 
这工作得很好,但我得到警告
初始化CollectionItemView时指针类型不兼容\uuu strong,表达式类型为NSView
。我理解为什么会出现这种情况,但是可以忽略它,还是应该覆盖view属性


chuck

如果您确定
[self view]
CollectionItemView
只需执行以下操作:

CollectionItemView *myView = (CollectionItemView*)[self view];
或者(哪个更好)您可以使用:

id myView = [self view];

没有必要覆盖它。特罗利已经提出了两个可行的解决方案。 然而,为了节省时间,我宁愿用不同的代码

CollectionItemView *myView = nil;
if ([[self view] isKindOfClass:[CollectionItemView class])
  self.view = (CollectionItemView*)[self view];
当您从上下文中确定对象必须是CollectionItemView类型或其任何子类时,不带isKindOfClass测试的较短版本就可以了