2014-12-22 34 views
1

我想將URL存儲在設備鑰匙串中,用於將設備指向特定服務器。當應用程序第一次啓動時,它會將URL存儲在鑰匙串中。如何在鑰匙鏈中劃分URL

+3

在鑰匙串爲什麼呢?這是URL私人數據嗎?如果你只需要保存數據,那麼有更好的地方來存儲它。 – duskwuff

+0

請建議其他方式 – Vinayk

+1

NSUserDefaults是最明顯的。 – Paulw11

回答

0
UITextField *url = [[UITextField alloc] initWithFrame:CGRectMake(40, 30, 240, 30)]; 
[url setBorderStyle:UITextBorderStyleRoundedRect]; 

KeychainItemWrapper *keychain = [[KeychainItemWrapper alloc] initWithIdentifier:@"TestAppData" accessGroup:nil]; 

以書面形式向Keychain-

//商店網址,以鑰匙圈

Nsstring *[email protected]"abcd" 
[keychain setObject:strURL forKey:(id)kSecAttrAccount]; 

從Keychain-

//從鑰匙串獲取AcessToken(如果存在的話)

閱讀
[url setText:[keychain objectForKey:(id)kSecAttrAccount]]; 

說明: 在模擬器中編寫和檢索鑰匙串中的值似乎不起作用。 卸載應用程序不會從鑰匙串中刪除項目。如果您在設備上運行演示應用程序並卸載應用程序,則用戶名和密碼將保留在鑰匙串中(當然,固件重置將刪除鑰匙串值)。

+0

Nikita,感謝您的回答。但是當你處理帳戶信息時,我們使用「kSecAttrAccount」。同樣如果我們使用其他信息,我們使用「kSecValueData」。你可以詳細的使用擊球手方式。 –

+0

感謝Nikita Khandelwal,但我已經使用kSecAttrAccount和kSecValueData.is存儲了key和value,還有其他任何存儲url的關鍵字? – Vinayk

0

是Vinayak,

有一些關鍵用戶與它的類型有關。如下請見。

kSecAttrAccessGroup   -  CFStringRef 
kSecAttrCreationDate  -  CFDateRef 
kSecAttrModificationDate -  CFDateRef 
kSecAttrDescription   -  CFStringRef 
kSecAttrComment    -  CFStringRef 
kSecAttrCreator    -  CFNumberRef 
kSecAttrType    -  CFNumberRef 
kSecAttrLabel    -  CFStringRef 
kSecAttrIsInvisible   -  CFBooleanRef 
kSecAttrIsNegative   -  CFBooleanRef 
kSecAttrAccount    -  CFStringRef 
kSecAttrService    -  CFStringRef 
kSecAttrGeneric    -  CFDataRef 
0

另一種方式,可以將其存儲在一個plist文件