我正在编写一个上下文"工厂",它将维护一个继承自某些Converter类的转换器/动作对象的字典.这个类有一个方法:
- (Class)classResponsibility
Run Code Online (Sandbox Code Playgroud)
或类似的东西,这样StringConverter类将实现该方法:
- (Class)classResponsibility {
return [NSString class];
}
Run Code Online (Sandbox Code Playgroud)
然后将该转换器存储在字典中,我曾希望做类似的事情:
[converters setValue:stringConverter forKey:[stringConverter classResponsibility]];
Run Code Online (Sandbox Code Playgroud)
但是编译器抱怨类型"Class"是setValue:forKey:方法的参数2的无效参数类型.我本来想避免将密钥设置为类的名称("NSString"),但如果这是最好的解决方案而不是我会使用它.