objective-c - "PerformSelector names a selector which retains the object"错误和 ARC

标签 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。

最佳答案

尝试这个解决方案:

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

关于objective-c - "PerformSelector names a selector which retains the object"错误和 ARC,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10186810/

相关文章:

ios - UIButton 按下时改变状态

swift - 在运行时以编程方式检测 Mac 应用程序中的 Apple Silicon 与 Intel CPU

objective-c - 将自动释放的 CGColor 返回到 ARC 的转换方法

objective-c - ARC 自动发布太早(?)

iphone - 不需要时对 NSURLConnection 进行身份验证

iphone - 动画/视频作为启动图像 ios

iphone - 按需创建延迟

objective-c - ARC 相当于自动释放?

ios - 使用 ARC 释放 CoreData 对象

ios - 使用 UIGraphicsGetImageFromCurrentImageContext 时如何修复因内存问题而终止?