“PerformSelector命名一个保留对象的选择器”错误和ARC

时间:2012-04-17 07:16:10

标签: objective-c automatic-ref-counting

好的ARC我们如何优雅地解决这个问题?

问题是用WSDL2OBJC创建的代码..我修复了所有其他问题,但这个问题让我不知所措..

if ([super respondsToSelector:@selector(initWithCoder:)] && ![self isKindOfClass:[super class]]) {
    self = [super performSelector:@selector(initWithCoder:) withObject:decoder];
} else {
    self = [super init];
}

在WSDL2OBJC中,他们像这样解决了这个问题:

“在目标中 - >构建阶段 - >编译源代码 对于所有wsdl2objc源添加:-fno-obcj-arc“

但这实际上不是对代码的修复..只能阻止WSDL2OBJC源上的ARC ..

3 个答案:

答案 0 :(得分:2)

试试这个解决方案:

self = [super performSelector:NSSelectorFromString(@"initWithCoder:") withObject:aDecoder];

答案 1 :(得分:0)

如果你知道超类,你不能简单地放弃这个混乱并直接调用适当的初始化器吗?

答案 2 :(得分:0)

我决定放弃WSDL2OBJC上的ARC并使用编译器标志