我正在編寫一個上下文「工廠」,它將維護從某些Converter類繼承的轉換器/作用對象的字典。這個類有一個方法:在NSDictionary中使用類作爲關鍵字
- (Class)classResponsibility
或者類似的東西,使得字符串轉換類將實施的方法:
- (Class)classResponsibility {
return [NSString class];
}
然後到轉換器存儲在字典中,我已經在做一些希望像:
[converters setValue:stringConverter forKey:[stringConverter classResponsibility]];
但是,編譯器抱怨說,類型「類」是用於的setValue的參數2無效的參數類型:forKey:方法。我曾經想避免將密鑰設置爲類的名稱(「NSString」),但如果這是最好的解決方案,那麼我將使用它。
神奇的解釋! – 2012-08-08 20:10:42
從XCode 4.5開始,你需要首先強制它不會得到警告:[dictionary setObject:object forKey:(id)someClass];看到這個答案http://stackoverflow.com/questions/12525324/unable-to-use-class-as-a-key-in-nsdictionary/12525479#12525479 –
odyth
2012-09-24 02:35:55