[英]perform protocol Class method at a dynamically created class
这是我的情况:
我有一个带有类方法的协议,它解析NSDictionary并返回一个执行我的协议的对象:
@protocol RCParsableObject <NSObject>
/**
Parses an object from an NSDictionary representation
Return: A object created from the NSDictionary representation
*/
+(id<RCParsableObject>)parseObjectFromDictonary:(NSDictionary*)object;
@end
在我的部分代码中,我有一个在NSString中执行该协议的类的名称:
//dict is the dictionary I want to parse
Class class= NSClassFromString(type);
if ([class conformsToProtocol:@protocol(RCParsableObject)]) {
//NSObject* object = [class parseObjectFromDictionary:dict];//Obviously that don't works but shows what I want
}
如果我想执行协议的Class方法,我知道它可以执行因为if。 我怎么能这样做? 它相当于:
NSObject * object = [class performSelector:_selector];
对于Class对象?
这就是你要做的,除了你想要输入保存返回值为id
或id<RCParsableObject>
的变量。 不需要performSelector:
或类似的东西 - 这对于动态选择选择器很有用,这不是这里的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.