gpt4 book ai didi

ios - 将 NSArray 存储到 KeychainItemWrapper 中

转载 作者:行者123 更新时间:2023-11-29 12:42:28 28 4
gpt4 key购买 nike

我必须将 NSArray(包含 NSString 和 BOOL)存储到 KeychainItemWrapper 中,以便在另一个 ViewController 中重新使用它,并在应用程序关闭时将其保留在内存中。

我已经在 this question 看到了但这对我没有帮助,因为我找不到 SBJsonWriter 文件。

谁能帮帮我?

非常感谢。

祝你有美好的一天!

最佳答案

SBJsonWriter 是几年前流行的第 3 方 JSON 库,现在 iOS 内置了它。

使用原生 NSJSONSerialization 将数据序列化为 JSON,然后将其写入钥匙串(keychain)(假设为 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];

将数据读回 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

关于ios - 将 NSArray 存储到 KeychainItemWrapper 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24531611/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com