1

我使用 xcode 自动转换将我庞大的 IOS 程序转换为 ARC。之后我收到以下错误:[CFString retain]: message sent to deallocated instance

跟踪显示崩溃的以下行:

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

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

有人可以建议我在哪里可以看得更远,或者我能做些什么来消除这个崩溃?

非常感谢

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

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

谢谢你。

4

1 回答 1

2

imagePath可能是__unsafe_unretainediVar(或者您可能正在看到weakassign)。将其更改为strong以便 ARC 保留它。

于 2012-05-15T08:33:24.747 回答