xcode ARC转换错误[CFString retain]崩溃

时间:2012-05-15 02:56:25

标签: 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不会变为空?

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

谢谢。

1 个答案:

答案 0 :(得分:2)

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