`NSTreeController`的`arrangeObjects`不响应`children`

时间:2017-02-05 14:37:53

标签: objective-c macos cocoa appkit nstreecontroller

NSTreeController' arrangedObjects doc中,它说:

  

此属性的值表示代理根树节点   包含树控制器的已排序内容对象。代理人   对象响应子级和后代(at :)消息。这个   使用键值观察可以观察到属性。

但是在下面的代码中,if永远不会碰到它的身体。

#import "NSTreeController+RootNodes_m.h"

@implementation NSTreeController (RootNodes_m)

- (NSArray *) rootNodes {
    NSObject *  arranged = self.arrangedObjects;

    if ([arranged respondsToSelector: @selector(children)]) {
        return [arranged performSelector:@selector(children)];
    }
    return nil;
}

@end

我写了这个Obj-C类别,因为在我的Swift项目中,我无法启用"整个模块优化"当我使用" hack"存档产品以供发布时来自this question。所以我尝试添加这个类别,这让我更加糟糕"结果

1 个答案:

答案 0 :(得分:1)

当您使用Objective-C时,您应该查看Objective-C version of the docs。您链接到的页面右上角有一个语言选择器。

在Objective-C文档中,您会发现代理响应-childNodes,而不是-children