2010-03-08 159 views
-5

我無法使KeychainItemWrapper(Apple示例)正常工作。我已經將KeychainItemWrapper文件添加到了我的項目中,並且在手機上運行時,SecItemAdd引發了一個異常,表示一個或多個參數無效(結果代碼-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 2010-03-08 13:21:22

+0

你也應該把它分解成幾個問題。 SO系統無法在單個線程中追蹤多個問題的多個答案。你希望人們回答4個獨立的理論問題以及調試你的代碼。這至少有5個單獨的答案,(1)大多數人沒有時間或知識來回答所有5,(2)沒有人會得到回答,只回答5個答案。不是說你看起來接受答案。 – TechZen 2010-03-08 15:22:25

回答

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];