2012-07-13 62 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或任何其子类的上下文。

相关问题