Сбой приложения при отпускании keyChainItemWrapper
У меня есть представление в моем приложении, которое показывает форму (электронная почта, имя, фамилия, дата рождения), которая загружает в поля, соответствующие данные из цепочки для ключей, позволяющие пользователю изменить его и т. Д. Это прекрасно работает, когда есть уже хранятся детали в цепочке для ключей, но если ничего не происходит (при первом запуске приложения), происходит сбой, когда я иду, чтобы освободить цепочку для ключей. Чтобы сохранить утечку памяти, я хочу посмотреть, есть ли лучший способ сделать что-то. Я использую KeychainItemWrapper от Apple, и мой проект не использует 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