嗨,我有一个cllocation值数组,我需要将该数组存储在userdefaults中...我该怎么做...?
在这些我添加对象到我的数组:
[AM_locationMP.favArray addObject:[AM_locationMP.locationData objectAtIndex:AM_locationMP.indexno]];
其中位置数据是位置地标值的数组。
其中maplocationVO类用于地标 MapLocationVO * currentMapLocation;
[AM_delegate.locationData addObject:currentMapLocation];
答案 0 :(得分:1)
为什么人们在明确不知道答案时会在这里发帖,或者了解你能在NSUserDefaults中存储和不能存储的内容?
NSUserDefaults类提供了访问常用类型(如浮点数,双精度数,整数,布尔值和URL)的便捷方法。默认对象必须是属性列表,即(或集合的实例组合)的实例:NSData,NSString,NSNumber,NSDate,NSArray或NSDictionary。如果要存储任何其他类型的对象,通常应将其存档以创建NSData实例。有关详细信息,请参阅“首选项和设置编程指南” - 来自文档
您需要使用NSKeyedArchiver将CLLocation数据转换为NSData。然后使用NSKeyedUnarchiver将NSData重新转换为CLLocation数据。
要解决的下一个问题是,当您归档CLLocation对象并将它们存储在UserDefaults中时,请不要正确地取消归档。唯一的解决方案可能是将它们保存到文件中。
答案 1 :(得分:0)
这应该足以写出来了:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:yourArray forKey:@"clArray"];
[defaults synchronize];
答案 2 :(得分:0)
使用此
用于设置数组
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
[standardUserDefaults setObject:yourArray forKey:@"array"];
[standardUserDefaults synchronize];
并获取数组
NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];
[standardUserDefaults setObject:yourArray forKey:@"array"];
NSMutableArray *array=[standardUserDefaults objectForKey:@"array"];