获取NSViewController查看它是否是自定义类?

时间:2012-07-13 13:46:45

标签: objective-c xcode cocoa nsview nsviewcontroller

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

CollectionItemView *myView = [self view]; 

这很有效,但我收到警告Incompatible pointer types initializing CollectionItemView __strong with an expression of type NSView。我理解为什么我得到这个但是可以忽略它或者我应该覆盖视图属性吗?

卡盘

2 个答案:

答案 0 :(得分:2)

如果您确定[self view] CollectionItemView只是CollectionItemView *myView = (CollectionItemView*)[self view]; ,请执行以下操作:

id myView = [self view];

或(更好)你可以使用:

{{1}}

答案 1 :(得分:0)

无需覆盖它。特罗利已经提出了两个有效的解决方案。 但是,为了保存,我宁愿用不同的方式编写代码。

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

如果从上下文中确定该对象必须是CollectionItemView类型或其任何子类,那么没有isKindOfClass测试的较短版本就可以了。