0

Swift でクラスを名前でインスタンス化するためにJosh Smith の ObjectFactoryを使用しています。しかし、私が試した以下のコードは、認識されないセレクターになります。

if let survey = surveyFactory.createInstance(className: className, initializer: "initWithStyle", argument: textChoiceStyle!.rawValue , argument2:  textChoices!)

私が渡したクラス名はORKTextChoiceAnswerFormatで、結果の Obj C 式は以下のように Swift で達成する必要があります

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

どこが間違っていますか?

4

1 に答える 1

2

イニシャライザセレクタは. _initWithStyle:textChoices:

于 2015-09-09T08:23:39.250 に答える