gpt4 book ai didi

ios - 将 NSArray 保存到 NSUserDefaults 不起作用

转载 作者:可可西里 更新时间:2023-11-01 04:35:38 25 4
gpt4 key购买 nike

我正在尝试将对象的 NSArray 保存到 NSUserDefaults,但是当我使用 getObject 拉回 NSArray 它不包含任何内容。

我在这里设置了一个断点来计算对象并验证数组中是否有项目

[[NSUserDefaults standardUserDefaults] setObject:mappingResult.array forKey:kArrayOfFoundThings];
[[NSUserDefaults standardUserDefaults] synchronize];

这是我将它们拉出的地方,阵列显示里面什么也没有。

NSArray *allAmbulances = [[NSUserDefaults standardUserDefaults] objectForKey:kArrayOfFoundThings]; 

最佳答案

假设数组中包含的对象符合 NSCoding 协议(protocol),您可以使用

// let's take the NSString as example
NSArray *array = @[@"foo", @"bar"];

[[NSUserDefaults standardUserDefaults] setObject: [NSKeyedArchiver archivedDataWithRootObject:array] forKey:@"annotationKey"];
NSArray *archivedArray = [NSKeyedUnarchiver unarchiveObjectWithData:[[NSUserDefaults standardUserDefaults] objectForKey:@"annotationKey"]] ;

如果它们符合NSCopying协议(protocol),那么

// let's take the NSString as example
NSArray *array = @[@"foo", @"bar"];

[[NSUserDefaults standardUserDefaults] setObject: array forKey:@"annotationKey"];
NSArray *archivedArray = [[NSUserDefaults standardUserDefaults] objectForKey:@"annotationKey"] ;

编辑

好的,它可能不适用于符合 NSCopying 协议(protocol)的对象的 NSArray,但可以说它适用于符合 NSCoding 的对象Brad Larson 在以下回答中指出的协议(protocol):

Storing custom objects in an NSMutableArray in NSUserDefaults

关于ios - 将 NSArray 保存到 NSUserDefaults 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17534869/

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