我使用 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(或者您看到的可能是 weak
或 assign
)。将其更改为 strong
,以便 ARC 保留它。
关于ios - xcode ARC 转换错误 [CFString retain] crash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10593602/