当我执行"Build and analyze"时,XCode给了我以下警告:
存储在'string'中的对象的潜在泄漏
- (NSString *)getUUID
{
NSString *UUID = [EA_APP_CONSTANT getUserDefaultsValueForKey:@"uniqueID"];
if (!UUID) {
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
UUID = [(__bridge NSString*)string stringByReplacingOccurrencesOfString:@"-"withString:@""];
[EA_APP_CONSTANT setUserDefaultsValue:UUID forKey:@"uniqueID"];
}
return UUID;
}
如何解决这个问题?
您需要呼叫CFRelease(string);
- (NSString *)getUUID
{
NSString *UUID = [EA_APP_CONSTANT getUserDefaultsValueForKey:@"uniqueID"];
if (!UUID) {
CFUUIDRef theUUID = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUUID);
CFRelease(theUUID);
UUID = [(__bridge NSString*)string stringByReplacingOccurrencesOfString:@"-"withString:@""];
[EA_APP_CONSTANT setUserDefaultsValue:UUID forKey:@"uniqueID"];
CFRelease(string);
}
return UUID;
}