修复ARC中潜在的内存泄漏
以下单例类(SharedManager)辅助方法可能会导致保留周期。 在静态分析器中获取警告:“在线分配的对象的潜在泄漏”我该如何解决?
我确实尝试了让伊娃使用__weak,但是当我分析时仍然会出现警告。
NSString *__weak uuid = (__bridge NSString *)CFUUIDCreateString(kCFAllocatorDefault, uuidObject);
谢谢
像这样在课堂上被召唤:
myUUID = [SharedManager generateUUID]; + (NSString *)generateUUID { CFUUIDRef uuidObject = CFUUIDCreate(kCFAllocatorDefault); NSString *uuid = (__bridge NSString *)CFUUIDCreateString(kCFAllocatorDefault, uuidObject); CFRelease(uuidObject); return uuid; }
NSString *uuid = (__bridge_transfer NSString *)CFUUIDCreateString(kCFAllocatorDefault, uuidObject);
这是否删除警告?
这是释放它们的一种方法:
- (NSString *) uuid { CFUUIDRef uuidRef = CFUUIDCreate(NULL); CFStringRef uuidStringRef = CFUUIDCreateString(NULL, uuidRef); CFRelease(uuidRef); NSString *uuid = [NSString stringWithString:(NSString *) uuidStringRef]; CFRelease(uuidStringRef); return uuid; }
资料来源: http : //www.cocoabuilder.com/archive/cocoa/217665-how-to-create-guid.html