我尝试使用iOS 中的 UYLPasswordManager 和 Keychain Migration and Data Protection - Part 3,并在分析中收到警告,指出 [result release] 代码行中的对象可能存在泄漏。这是一个真正的潜在泄漏吗?如果是这样,我该如何解决?如果不是,我如何使警告静音?我的项目使用 ARC,但我已使用 UYLPasswordManager 对象的标志将其关闭。
- (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];
}
}
}