我使用
xcode自动转换将我庞大的
IOS程序转换为ARC.之后我收到以下错误:
[CFString retain]:发送给deallocated实例的消息
[CFString retain]:发送给deallocated实例的消息
跟踪显示崩溃的以下行:
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; }
谢谢.
解决方法
imagePath可能是__unsafe_unretained iVar(或者你可能看到弱或分配).将其更改为强,以便ARC保留它.