繁体   English   中英

在动态创建的类中执行协议类方法

[英]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对象?

这就是你要做的,除了你想要输入保存返回值为idid<RCParsableObject>的变量。 不需要performSelector:或类似的东西 - 这对于动态选择选择器很有用,这不是这里的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM