我正在使用Apple的示例代码中的KeyChainItemWrapper来存储用户密码以进行身份验证,但是当我调用它来设置密码时:
[keychain setObject:passwordField.text forKey:(id)kSecValueData];
Run Code Online (Sandbox Code Playgroud)
它在我的衬衫上传递了记忆泄漏.问题显然是追溯到KeyChainItemWrapper.m中的第274行,这是:
if (SecItemCopyMatching((CFDictionaryRef)genericPasswordQuery, (CFTypeRef *)&attributes) == noErr)
{
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题,将来在使用Apple示例代码时应该更加小心?
注意:我可以发布更多代码,但我已经使用Instruments将问题缩小到这一行,并且任何开发人员都可以使用完整的示例代码.