【发布时间】: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