2010-03-08 4 views
-5

KeychainItemWrapper (Apple 예제)를 사용할 수 없습니다. 내 프로젝트에 KeychainItemWrapper 파일을 추가했으며 전화로 실행할 때 하나 이상의 매개 변수가 유효하지 않음을 나타내는 SecItemAdd에 의해 예외가 throw됩니다 (결과 코드 -50). SecItemAdd를 트리거하는 코드는 다음과 같습니다.iPhone 키 체인

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 나는이 같은 문제로 실행

+3

13 질문 - 당신은 * 지금 * 어떤을 받아 들일 것인가? – Trick

+0

또한 이것을 몇 가지 질문으로 나눠야합니다. SO 시스템은 단일 스레드에서 여러 질문에 대한 복수 응답을 추적 할 수 없습니다. 사람들이 코드를 디버깅 할뿐만 아니라 4 개의 개별 이론 질문에 답변하기를 원합니다. 그건 적어도 5 개의 개별 답변이고 (1) 대부분의 사람들은 모두 5에 답변 할 수있는 시간이나 지식이 없으며 (2) 아무도 담당자가 5 명 중 한 명에게 답변하지 못하게 할 것입니다. – TechZen

답변

9

에서 찾을 수 있습니다. 임의의 키를 사전에 넣을 수 없으면 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];