我使用Josh Smith的ObjectFactory在Swift中按名称实例化类。但是我尝试的下面的代码导致无法识别的选择器。
if let survey = surveyFactory.createInstance(className: className, initializer: "initWithStyle", argument: textChoiceStyle!.rawValue , argument2: textChoices!)
我传递的类名是ORKTextChoiceAnswerFormat和我需要在Swift中实现的结果Obj C表达式如下
ORKTextChoiceAnswerFormat *asd = [[ORKTextChoiceAnswerFormat alloc]initWithStyle:<#(ORKChoiceAnswerStyle)#> textChoices:<#(NSArray * __nonnull)#>];
但是我在对象工厂方法
中将其作为无法识别的选择器 static id OBJCInitWithArg(id target,
SEL initializer,
id argument, id argument2)
{ IMP imp = [target methodForSelector:initializer];
id (*initFunc)(id, SEL, id, id) = (void *)imp;
return initFunc(target, initializer, argument, argument2);
}
我在控制台得到这个错误
[ORKTextChoiceAnswerFormat initWithStyle]: unrecognized selector sent to instance
我哪里错了?
初始化器的选择器是initWithStyle:textChoices:
。