在使用xcode自带的检测内存的方式Analyze的时候,发现一个有问题的地方,如下:
//获取唯一Id
+ (NSString *)uuidString {
CFUUIDRef theUniqueString = CFUUIDCreate(NULL);
CFStringRef string = CFUUIDCreateString(NULL, theUniqueString);
CFRelease(theUniqueString);
return(__bridgeNSString *)string;
}
提示 : potential leak of object store into "string"
提示说 string 有可能内存泄漏了,说明我们在处理 string 的时候,也需要对他进行 release,而方法要返回NSString对象,所有可以把 string转换成 NSString对象,然后 retain 返回,返回之前release掉 string ,改过后的代码如下:
//获取唯一Id
+ (NSString*)uuidString {
CFUUIDReftheUniqueString =CFUUIDCreate(NULL);
CFStringRefstring =CFUUIDCreateString(NULL, theUniqueString);
NSString*tmpString = (__bridgeNSString*)string;
CFRelease(theUniqueString);
CFRelease(string);
returntmpString;
}
网友评论