gpt4 book ai didi

objective-c - 在动态创建的类中执行协议(protocol)类方法

转载 作者:行者123 更新时间:2023-11-28 22:56:24 27 4
gpt4 key购买 nike

这是我的情况:

我有一个带有类方法的协议(protocol),该方法解析 NSDictionary 并返回一个执行我的协议(protocol)的对象:

@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 中执行该协议(protocol)的类的名称:

//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
}

在 if 中,我想执行协议(protocol)的类方法,我知道它可以执行,因为 if。我该怎么做?它等同于:

NSObject * object = [class performSelector:_selector];

对于类对象?

最佳答案

这就是您要做的,只是您希望将保存返回值的变量键入为 idid<RCParsableObject> .不需要 performSelector:或任何类似的东西——当动态选择选择器时这很有用,这里不是这种情况。

关于objective-c - 在动态创建的类中执行协议(protocol)类方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10706682/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com