Ser*_*ity 5 iphone memory-leaks keychain ios
我正在使用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将问题缩小到这一行,并且任何开发人员都可以使用完整的示例代码.
查看KeyChainItemWrapper的代码,我同意这行是内存泄漏.他们[attributes release]在最后错过了writeToKeychain.查看SecItemCopyMatching()此文件中的所有其他调用,以获取有关它们如何正确释放返回引用对象的示例.
我会使用本页底部的"这是好的,但是......"链接来记录错误.
| 归档时间: |
|
| 查看次数: |
1905 次 |
| 最近记录: |