2017-02-05 6 views
0

`에 응답하지 않습니다 arrangedObjectsdoc는 말한다 :이 속성의 값은 트리를 포함하는 프록시 루트 트리 노드 을 나타냅니다 `NSTreeController`의는`arrangedObjects`가 <code>NSTreeController</code>의에서 children`

컨트롤러의 정렬 된 콘텐츠 개체 프록시 개체는 자식 및 하위 (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 

나는 때문에 내가 릴리스 제품을 보관하는 경우 this question로부터는 "해킹"사용할 때이 "전체 모듈의 최적화"를 켤 수 없습니다 내 스위프트 프로젝트에서이를 Obj-C 카테고리를 썼다. 그래서 나는이 범주를 추가하려고 노력했는데, 심지어 나에게 "더 나쁜"결과를 가져다 주었다.

답변

1

Objective-C를 사용하는 경우 Objective-C version of the docs을 확인해야합니다. 연결된 페이지에는 오른쪽 상단에 언어 선택기가 있습니다.

Objective-C docs에서 프록시는 -children이 아니라 -childNodes에 응답하는 것을 알 수 있습니다.

+0

고마워요! 이제이 Obj-C 카테고리를 사용하면 전체 모듈 최적화가 작동합니다. 나는 Swift extension을 추가하려고 노력했지만 vail하지 않았다. – LShi