Ios UYLPasswordManager中对象的潜在泄漏
我从中试用UYLPasswordManager,并在分析中得到一个警告,即在代码的[result release]行中存在对象的潜在泄漏。这真的是潜在的泄漏吗?如果是,我该如何修复它?如果没有,我如何使警告静音?我的项目使用ARC,但我已使用UYLPasswordManager对象的标志将其关闭Ios UYLPasswordManager中对象的潜在泄漏,ios,memory-management,memory-leaks,Ios,Memory Management,Memory Leaks,我从中试用UYLPasswordManager,并在分析中得到一个警告,即在代码的[result release]行中存在对象的潜在泄漏。这真的是潜在的泄漏吗?如果是,我该如何修复它?如果没有,我如何使警告静音?我的项目使用ARC,但我已使用UYLPasswordManager对象的标志将其关闭 - (void)searchKeychain { if (self.keychainValue == nil) { NSMutableDictionary *searchDictionary = [s
- (void)searchKeychain {
if (self.keychainValue == nil) {
NSMutableDictionary *searchDictionary = [self newSearchDictionary];
[searchDictionary setObject:(id)kSecMatchLimitOne
forKey:(id)kSecMatchLimit];
[searchDictionary setObject:(id)kCFBooleanTrue
forKey:(id)kSecReturnData];
NSData *result = nil;
OSStatus status = SecItemCopyMatching((CFDictionaryRef)searchDictionary,
(CFTypeRef *)&result);
[searchDictionary release];
if (result) {
self.keychainValue = [[NSString alloc] initWithData:result
encoding:NSUTF8StringEncoding];
[result release];
}
}
}
假设您的keychainValue属性声明为copy或retain,则它将保留您正在创建的新NSString。添加如下自动释放消息:
self.keychainValue = [[[NSString alloc] initWithData:result encoding: NSUTF8StringEncoding] autorelease];