2
我可能在想這些/浪費時間試圖避免一些條件代碼 - 所以我想我會問。我已經看到了其他一些問題,但他們使用的是PHP或其他語言。使用存儲在變量中的Class名稱來調用Class方法?
在最基本的,我可以做這樣的事(我知道的語法錯誤):
Class * var = @"Playback_Up";
// call Class method to get default settings
NSMutableDictionary * dict = [var getPlaybackDefaults];
我爲什麼要這麼做?爲了避免一堆條件。我有一個應用程序,可以從一系列播放「類型」中進行選擇 - 每種類型都由「播放」類的子類處理。將類名存儲在一個數組中,然後當選擇時(從tableView)調用選定的類,創建它的一個實例等等會很方便。
這是可能的還是我在挖掘自己這裏有一個洞?
或者[Playback_Up class]'怎麼樣? – 2012-04-06 23:58:28
是的,這也很好(如果名稱是硬編碼的話也更好)。 'NSClassFromString'只是讓你處理一個變量字符串,如果你從其他地方讀取它,這很好。 – 2012-04-06 23:59:08
@skinnyTOD如果你在相反的方向去做額外工作的一小部分'NSStringFromClass([MyClass class]);''這樣Xcode實際上可以在你改變類的名字時重構。 – 2012-04-07 00:02:03