ios - xcode ARC 转换错误 [CFString retain] crash

标签 ios xcode automatic-ref-counting

我使用 xcode 自动转换将庞大的 IOS 程序转换为 ARC。之后我收到以下错误: [CFString retain]: 发送到释放实例的消息

跟踪显示崩溃的以下行:

UIImage *image = [[UIImage alloc] initWithContentsOfFile:tile.imagePath];

跟踪中的下一行给出:__arclite_objc_retainAutoreleasedReturnValue at/SourceCache/arclite/arclite-7.1/source/arclite.m:241

有人可以建议我在哪里可以进一步查看,或者我可以做些什么来消除这个崩溃?

非常感谢

编辑:看起来下面代码中的 (NSString *)p 初始化需要一些更改。我应该如何更改它,以便 tile.imagePath 不会变为 null?

- (id)initWithFrame:(MKMapRect)f path:(NSString *)p{
    if (self = [super init]) {
        imagePath = p;
        frame = f;
    }
    return self;
}

谢谢。

最佳答案

imagePath 可能是一个 __unsafe_unretained iVar(或者您看到的可能是 weakassign)。将其更改为 strong,以便 ARC 保留它。

关于ios - xcode ARC 转换错误 [CFString retain] crash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10593602/

相关文章:

ios - Swift 3 - 比较两个不等长的数组并在其中 append 占位符值以使它们相等

javascript - Cordova 监听 iOS 主页按钮按下

ios - 在 Xcode 4.5 和 4.6 中调试速度非常慢

ios - Xcode 版本 5.1.1 (5B1008) - 在 iOS 7.0 而非 7.1 上运行模拟器

ios - topLevelObjects 的 loadNibNamed 泄漏

ios - 无法识别的选择器发送到实例。 NSInvalidArgumentExpectation

javascript - 如何从 UIWebView 获取数据传递到 Objective-c IOS 中的 native 应用程序

ios - swift-stdlib-tool 失败,退出代码为 1

cocoa - 使用 ARC 在 Xcode 4 (OSX 10.7.2) 中将 Cocoa 窗口显示为工作表

ios - ARC 中的引用计数