2

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

问题是使用 WSDL2OBJC 创建的代码。我修复了所有其他问题,但这个问题让我无法理解。

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

在 WSDL2OBJC 中,他们在这里解决了这个问题,如下所示:

“在 Targets->Build Phases-> Compile Sources 对于所有 wsdl2objc 源添加:-fno-obcj-arc”

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

4

3 回答 3

2

试试这个解决方案:

self = [super performSelector:NSSelectorFromString(@"initWithCoder:") withObject:aDecoder];
于 2015-05-29T05:48:15.050 回答
0

如果您知道超类,您就不能简单地放下这个烂摊子并直接调用适当的初始化程序吗?

于 2012-04-17T07:19:34.010 回答
0

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

于 2012-05-22T13:18:08.677 回答