2013-10-24 75 views
3

我想保持我的應用程序狀態在鑰匙串中。所以我必須把這樣的鑰匙串項目包裝給BAD_ACCESS_CODE = 2

KeychainItemWrapper *keychainItemLog = [[KeychainItemWrapper alloc] initWithIdentifier:@"LoggedORNOT" accessGroup:nil]; 
[keychainItemLog setObject:@"STATUS" forKey:(__bridge id)(kSecValueData)]; 
keychainItemLog setObject:@"TOVERIFY" forKey:(__bridge id)(kSecAttrAccount)]; 

但在這一行及其以下行 越來越EXC_BAD_ACCESS_Code=2 - 在我Viewcontroller-

[keychainItemLog setObject:@"STATUS" forKey:(__bridge id)(kSecValueData)]; 

-in KeychainItemWrapper.m -

NSAssert(result == noErr, @"Couldn't add the Keychain Item."); 

[self writeToKeychain]; 

回答

0

我猜你是setObjectsetValue之間的混淆,如下更改設置:

[keychainItemLog setObject:(__bridge id)(kSecValueData) forKey:@"STATUS"]; 
+0

不知道我收到了你的問題,但你只需要值與鍵之間切換,@「狀態」應該是密鑰和'kSecValueData'是值。 – null

+0

但其他地方,它在我的方式工作..爲什麼呢? – user2889249

+0

如果關鍵是'NSString',那麼它就可以工作,但是你需要明白你會通過你提供的密鑰來獲得價值,我建議仔細檢查其他地方;)。 – null