我要存儲一個NSArray(其中包含的NSString和BOOL)成KeychainItemWrapper重新使用它在另一個視圖控制器,並保持它在內存中,即使應用程序被關閉。商店一個NSArray成KeychainItemWrapper
我已經看到this question但它不會幫我,因爲我無法找到SBJsonWriter文件。
能有人可以幫助我嗎?
感謝很多。
祝您有美好的一天!
我要存儲一個NSArray(其中包含的NSString和BOOL)成KeychainItemWrapper重新使用它在另一個視圖控制器,並保持它在內存中,即使應用程序被關閉。商店一個NSArray成KeychainItemWrapper
我已經看到this question但它不會幫我,因爲我無法找到SBJsonWriter文件。
能有人可以幫助我嗎?
感謝很多。
祝您有美好的一天!
SBJsonWriter是一個第三方JSON庫流行年前,現在的iOS有這個建於
序列化。數據作爲使用JSON天然NSJSONSerialization,然後把它寫入到鑰匙串(假定kSecValueData,被加密):
NSArray* array = ...;
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:array options:0 error:nil];
NSString* jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
[keychainItem setObject:jsonString forKey:(__bridge id)kSecValueData];
爲了讀取DA ta回到NSArray:
NSString* jsonString = [keychainItem objectForKey:(__bridge id)kSecValueData];
NSArray* array = nil;
if(jsonString.length > 0)
{
id jsonObject = [NSJSONSerialization JSONObjectWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding] options:0 error:nil];
// Type check because the JSON serializer can return an array or dictionary
if([jsonObject isKindOfClass:[NSArray class]])
array = jsonObject;
}
// use your array variable here, it may be nil
是否有可能我通過我的KeychainItem陣列中添加一些數據?我必須管理一個最喜歡的優惠(這是一個小廣告應用程序)系統,這些信息存儲爲一個數組。我想在用戶點擊「添加收藏夾」按鈕時添加它,並在用戶點擊「刪除收藏夾」按鈕時將其刪除。我希望你能理解我。非常感謝 – ben77650
事實上,我想存儲一個包含NSArray的NSArray,你認爲這可能嗎? – ben77650
@ ben77650在NSArray中,您可以添加包裝在NSNumber,NSStrings,NSArrays和NSDictionaries(包括嵌套)中的基本類型 - 這些類型可以串行化爲JSON字符串。然而,從你的解釋中,最喜歡的提供數據聽起來不像是敏感的,所以可能不需要在鑰匙串中安全地加密。記住鑰匙串是針對敏感信息的小部分,聽起來像你需要一個數據庫或保存到磁盤的.json/.plist文件。如果你需要一組複雜的數據,我推薦一個數據庫。 – SomeGuy
您可以使用蘋果的NSJSONSerialization類你的鏈接的答案是使用SBJsonWriter做的事情。
例子:
NSData* jsonData = [NSJSONSerialization dataWithJSONObject:myArray options:0 error:&error];
NSString* jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
然後寫jsonString到鑰匙串。
的逆過程,從您的鑰匙串檢索jsonString和做到這一點:
NSArray* myArray = [NSJSONSerialization JSONObjectWithData:jsonString options:0 error:&error];
字符串是否包含敏感信息? – trojanfoe
NSArray如何存儲BOOL? – gran33
你爲什麼想把它保存在鑰匙串中?它是高度保密的嗎? – jailani