【问题标题】:Getting a NSViewController's View if it is a custom class?如果它是自定义类,则获取 NSViewController 视图?
【发布时间】:2012-07-13 09:07:10
【问题描述】:

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

CollectionItemView *myView = [self view]; 

这很好用,但我收到警告Incompatible pointer types initializing CollectionItemView __strong with an expression of type NSView。我明白为什么我会得到这个,但是可以忽略它还是应该覆盖视图属性?

查一下

【问题讨论】:

    标签: objective-c xcode cocoa nsview nsviewcontroller


    【解决方案1】:

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

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

    或者(哪个更好)你可以使用:

    id myView = [self view];
    

    【讨论】:

      【解决方案2】:

      没有必要覆盖它。 troolee 已经提出了两种可行的解决方案。 但是,为了省钱,我宁愿用不同的方式编码。

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

      当您从上下文中确定对象必须是 CollectionItemView 类型或其任何子类时,没有 isKindOfClass 测试的较短版本是可以的。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-04-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多