2014-03-30 54 views
0

舉例來說,我們有兩大類:有什麼方法可以檢查哪個類別屬於某個方法?

@interface NSString (Utilities) 
- (void)someMethod; 
@end 

@interface NSString (RBTree) 
- (void)someOtherMethod; 
@end 

我們需要這樣的事:

if (category that contains someMethod is Utilities){ 
    // ... anything here ... 
} 

只是好奇。

+0

爲什麼你需要知道這個?更大的目標是什麼? –

+0

@JoshCaswell,「只是好奇。」 – AndrewShmig

+0

夠好。 (如果你有一些特定的目標,可能有另一種方法來實現它。) –

回答

2

你有多好奇?

讓我們開始你的旅程:

的目標C運行時參考定義類別類型Category,但本身不提供接受或返回此類型的值的任何功能。這表明,某種類別的結構確實存在,至少在某些時候,但其運作的功能並未公開。

但是爲什麼要將該類型公開,如果不把它引用到其他地方...?

動態模塊加載(Dynamic Loadingobjc-load.h)提供了三個函數,它們帶有一個回調函數,該函數傳遞一個類型爲Category的參數;所以更多的證據表明存在一些描述類別的結構,至少在裝載過程中。

您的下一站可能是Apple的開源存儲庫...

玩得開心!

相關問題