2010-05-28 56 views
0

我試圖將通用查詢的結果識別爲作爲NSSet的受管對象。目前,返回的類是_NSFaultingMutableSet的成員,它明顯相關,但isMemberOf:[NSSet類]和isKindOf:[NSSet類]調用失敗。嘗試將_NSFaultingMutableSet識別爲NSSet的成員

鑑於Cocoa並沒有直接執行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:在一個類本身,就像我一樣,而是在特定的實例上。 Tsk tsk。

0

或者,NSObject確實有一個isSubclassOfClass:類方法(在Mac OS X 10.2中引入)。您可能做:

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

雖然,它可能是更容易簡單的測試實例本身。

相關問題