我使用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;
}
谢谢。
答案 0 :(得分:2)
imagePath
可能是__unsafe_unretained
iVar(或者您可能看到weak
或assign
)。将其更改为strong
,以便ARC保留它。