【发布时间】:2012-03-25 21:41:47
【问题描述】:
我收到以下警告。
引用计数对象释放后使用
为此文件启用了 ARC。
我尚未将我的应用转换为使用 ARC,并且目前对它没有正确的理解。但是,乍一看我很困惑为什么这段代码会有问题(它来自库),我的意思是我知道这里不应该使用 autorelease?
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
id uuid = [defaults objectForKey:@"uniqueID"];
if (uuid)
uniqueID = (NSString *)uuid;
else {
CFStringRef cfUuid = CFUUIDCreateString(NULL, CFUUIDCreate(NULL));
uniqueID = (__bridge NSString *)cfUuid;
CFRelease(cfUuid);
[defaults setObject:uniqueID forKey:@"uniqueID"]; // warning here
}
编辑
@JohnCalsbeek,@epatel,@Chuck
谢谢,我刚刚尝试过,我在CFStringRef cfUuid 行收到了一个新警告,说可能存在泄漏。
这是完整的文件https://github.com/MugunthKumar/MKStoreKit/blob/master/MKSKProduct.m
【问题讨论】:
标签: iphone objective-c ios cocoa-touch