【问题标题】:Swift: using object factory results in unrecognised selectorSwift:使用对象工厂导致无法识别的选择器
【发布时间】:2015-09-09 08:19:26
【问题描述】:

我使用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

我哪里错了?

【问题讨论】:

  • 您需要使用initWithStyle:
  • 我试过还是一样-[ORKTextChoiceAnswerFormat initWithStyle:]: unrecognized selector sent to instance 0x7fe6c0dcb200
  • 实际上,initWithStyle: 不可用。你期望它做什么?见researchkit.org/docs/Classes/ORKTextChoiceAnswerFormat.html#//…:
  • 对自己说——“我哪里错了?”我 - 我完全错了facepalm

标签: ios objective-c swift researchkit


【解决方案1】:

初始化器选择器initWithStyle:textChoices:

【讨论】:

    猜你喜欢
    • 2011-04-29
    • 1970-01-01
    • 2013-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多