2010-09-29 43 views
1

例如,如果我有一個函數排序()像這樣:如何知道Iphone上Objective C中變量的類型?

 
+ (void) sort: (id) a { 
if(typeof(a) == 'NSArray') 
    { ... } 
} 

那麼,有沒有目標C爲iPhone任何可以替代的typeof()的走,這樣我可以檢測事先什麼樣的變量我在處理?

回答

3
[a isKindOfClass:[NSArray class]] 

想到泉水。

我也想指出,雖然在你的情況下,它更有意義,只需輸入方法的參數,而不是採取ID和檢查它的類型,即

+ (void)sort:(NSArray *)a 
+0

感謝您的提示。我打算傳遞各種對象,例如NSArray,NSMutableArray,NSDictionary,NSMutableDictionary等,並根據類型進行操作。 – kumar 2010-09-29 11:12:23

+0

這是有道理的,但要警告它往往是一個弱設計的症狀。 – 2010-09-29 16:29:25

1

NSObject協議具有比較方法是你會感興趣的。

相關問題