Я использую оболочку Apple для цепочки для ключей и попробуйте сохранить на нем элемент (работает в симуляторе, ios 4.1).
У меня не было опыта работы с брелоком раньше.
Я получаю эту ошибку:
Не удалось добавить элемент связки ключей. Ошибка - 25299
В строке KeychainItemWrapper.m 304:
// No previous item found; add the new one.
result = SecItemAdd((CFDictionaryRef)[self dictionaryToSecItemFormat:keychainItemData], NULL);
NSAssert( result == noErr, @"Couldn't add the Keychain Item." );
Вот как я делаю сохранение:
- (void) saveKey:(NSString *)key value:(NSString *)value {
KeychainItemWrapper *keyItem = [[KeychainItemWrapper alloc] initWithIdentifier:key accessGroup:nil];
[keyItem setObject:value forKey:(id)kSecValueData];
[keyItem release];
}
И это значения, которые API пытается сохранить:
<CFBasicHash 0x7231f60 [0x320d380]>{type = mutable dict, count = 5,
entries =>
2 : <CFString 0x2e6eb98 [0x320d380]>{contents = "labl"} = <CFString 0x2fb018 [0x320d380]>{contents = ""}
3 : <CFString 0x2e6efb8 [0x320d380]>{contents = "v_Data"} = <CFString 0x727de60 [0x320d380]>{contents = "dit8"}
4 : <CFString 0x2e6ebc8 [0x320d380]>{contents = "acct"} = <CFString 0x2fb018 [0x320d380]>{contents = ""}
5 : <CFString 0x2e6eb58 [0x320d380]>{contents = "desc"} = <CFString 0x2fb018 [0x320d380]>{contents = ""}
6 : <CFString 0x2e6ebe8 [0x320d380]>{contents = "gena"} = <CFString 0x2ffd08 [0x320d380]>{contents = "userCode"}
}
[keychainItemData setObject:@"" forKey:(__bridge id)kSecAttrService];
в- (void)resetKeychainItem
. Затем, когда я читал ответ пользователя 379075 ниже, он позвонил в звонок, что если вы «сбросите» его, вы также должны установить его и v.v. - person mrd3650   schedule 13.04.2012