Swift:使用对象工厂导致无法识别的选择器

时间:2015-09-09 08:19:27

标签: ios objective-c swift researchkit

使用Josh Smith's 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

我哪里错了?

1 个答案:

答案 0 :(得分:2)

初始值设定项选择器initWithStyle:textChoices: