2

我在我的应用程序中有一个视图,它显示了一个加载到字段中的表单(电子邮件、名字、姓氏、出生日期)、钥匙串中的相应数据允许用户更改它等等。当有已经存储在钥匙串中的详细信息,但是如果什么都没有(当应用程序第一次运行时),当我去释放钥匙串时它会崩溃。为了节省内存泄漏,我想看看是否有更好的处理方式。我使用苹果的 KeychainItemWrapper 并且我的项目不使用 ARC。

这是我的代码

// add data from keychain to fields if set
KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"test" accessGroup:nil];
NSString *error;

NSData *dictionaryRep = [keychainItem objectForKey:kSecAttrService];
NSDictionary *dictionary = [NSPropertyListSerialization propertyListFromData:dictionaryRep mutabilityOption:NSPropertyListImmutable format:nil errorDescription:&error];

if (error) {
   NSLog(@"An error occurred - %@", error);
    }
else{
    //successful so populate fields
    email_.text = [dictionary objectForKey:@"email"];
    firstName_.text = [dictionary objectForKey:@"firstname"];
    lastName_.text = [dictionary objectForKey:@"lastname"];
    dob_.text = [dictionary objectForKey:@"dob"];
}
[keychainItem release]; // crashes here with an EXC_BAD_ACCESS
4

0 回答 0