相关疑难解决方法(0)

在NSDictionary中使用class作为键

我正在编写一个上下文"工厂",它将维护一个继承自某些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"),但如果这是最好的解决方案而不是我会使用它.

dictionary objective-c

37
推荐指数
3
解决办法
3万
查看次数

标签 统计

dictionary ×1

objective-c ×1