2010-05-28 1 views
0

관리되는 개체에 대한 일반 쿼리의 결과를 NSSet으로 인식하려고합니다. 현재 반환 된 클래스는 분명히 관련되어 있지만 isMemberOf : [NSSet class] 및 isKindOf : [NSSet class] 호출에 실패한 _NSFaultingMutableSet의 멤버입니다._NSFaultingMutableSet을 NSSet의 구성원으로 인식하려고 시도했습니다.

코코아가 NSSet을 직접 구현하지 않는다는 것을 감안할 때 파이프에 약간의 공기가 들어가는 것은 놀라운 일이 아니지만 내가 명백한 것을 엉망으로 만들고 있는지, 아니면 더 높은 등급이 필요한지 궁금합니다. 내가 가지고있는 것보다 쿵후의

코드는 다음과 같습니다

SEL selector = NSSelectorFromString(someString); 
if(![self respondsToSelector:selector]){ 
    NSLog(@"Error processing item"); 
       return; 
} 
id items = [self performSelector:selector]; 
Class itemsClass = [items class]; 
if ([itemsClass isKindOfClass:[NSSet class]]) { 
     // do something 
     } 

답변

1

하! 내 문제는 평소처럼 RTFM에 의해 해결되었습니다. 그것은 당신이 isKindOf :를 호출하지 말아야한다는 것이 밝혀졌습니다. 클래스 자체에 대해 말했듯이, 그렇지만 특정 인스턴스에 대해서 말입니다. t 스크.

0

또는 NSObject에는 isSubclassOfClass: 클래스 메소드 (Mac OS X 10.2에서 도입)가 있습니다. 당신 할 : 아마 단순히 인스턴스 자체를 테스트하는 것이 더 쉽습니다

if ([itemsClass isSubclassOfClass:[NSSet class]]) 
{ 
    // do something 
} 

있지만.