gpt4 book ai didi

iphone - Obj-C,引用计数的对象在释放后使用吗?

转载 作者:行者123 更新时间:2023-12-01 17:44:39 26 4
gpt4 key购买 nike

我收到以下警告。

引用计数的对象在释放后使用

为此文件启用了ARC。

我尚未将我的应用程序转换为使用ARC,并且目前对此应用程序还没有足够的了解。但是,我一眼就感到困惑,为什么这个代码应该有问题(来自库),我的意思是我知道这里不应该使用自动发布吗?

    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

最佳答案

试试这个,对不起您的误会haha

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
id uuid = [defaults objectForKey:@"uniqueID"];

if (uuid)
uniqueID = [NSString stringWithString:(NSString *)uuid];
else {
CFUUIDRef temp = CFUUIDCreate(NULL);
CFStringRef cfUuid = CFUUIDCreateString(NULL, temp);
uniqueID = [NSString stringWithString:(__bridge NSString*) cfUuid];
CFRelease(cfUuid);
CFRelease(temp);

[defaults setObject:uniqueID forKey:@"uniqueID"]; // warning here
}

关于iphone - Obj-C,引用计数的对象在释放后使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9864335/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com