有没有一种方法可以将符合某个协议的类作为参数传递?
起初,我尝试了以下代码:
-(NSString *) getKeyForMyProtocolClass(Class<MyProtocol>)aClass
但这会导致...
[aClass superclass];
出现了警告“找到实例方法'superclass'而不是类方法'superclass'”。对于conformsToProtocol:,我也得到了同样类型的警告。
当参数为(Class)aClass时,它不会给出这样的警告,因此Class< MyProtocol>似乎并不是Class类型。
我不应该发送NSObject< MyProtocol>,因为我需要根据类及其超类确定正确的键,并且只有在该键尚未设置任何值时才创建并添加新对象。
我可以使用conformsToProtocol进行检查,但然后我必须返回nil值,这很混乱。我更喜欢在编译时解决问题。
因此,简而言之,是否有一种类类型声明符合协议?