брелок для iPhone - PullRequest
       12

брелок для iPhone

0 голосов
/ 08 марта 2010

Я не могу заставить KeychainItemWrapper (пример Apple) работать. Я добавил файлы KeychainItemWrapper в свой проект, и при запуске его на телефоне SecItemAdd создает исключение, говоря, что один или несколько параметров недопустимы (код результата -50). Код, запускающий SecItemAdd, следует:

KeychainItemWrapper* wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"something" accessGroup:nil];
[wrapper setObject:@"this is my password" forKey:@"password"];
NSLog(@"Password: %@", [wrapper objectForKey:@"password"]);

Что не так?

Код можно найти на http://developer.apple.com/iphone/library/samplecode/GenericKeychain/index.html

1 Ответ

9 голосов
/ 11 марта 2010

Я столкнулся с этой же проблемой. Вы не можете помещать произвольные ключи в словарь, вам нужно использовать четко определенные ключи, которые понимает SecItemAdd.

Попробуйте это:

KeychainItemWrapper *wrapper = [[KeychainItemWrapper alloc] initWithIdentifier:@"password" accessGroup:nil];
[wrapper setObject:@"this is my password" forKey:(id)kSecValueData];
NSLog(@"password: [%@]", [wrapper objectForKey:(id)kSecValueData]);
[wrapper release];
...