在userdefaults iphone sdk中存储cllocation值的数组

时间:2011-02-24 12:59:32

标签: iphone arrays nsuserdefaults cllocation

嗨,我有一个cllocation值数组,我需要将该数组存储在userdefaults中...我该怎么做...?
在这些我添加对象到我的数组:  [AM_locationMP.favArray addObject:[AM_locationMP.locationData objectAtIndex:AM_locationMP.indexno]];

其中位置数据是位置地标值的数组。

其中maplocationVO类用于地标 MapLocationVO * currentMapLocation;

[AM_delegate.locationData addObject:currentMapLocation];

3 个答案:

答案 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"];
相关问题