1

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

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

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

[AM_delegate.locationData addObject: currentMapLocation];

4

3 回答 3

1

当人们显然不知道答案或不了解您可以和不能存储在 NSUserDefaults 中的内容时,为什么还要在这里发帖?

NSUserDefaults 类提供方便的方法来访问常见类型,例如浮点数、双精度数、整数、布尔值和 URL。默认对象必须是一个属性列表,即以下实例(或集合实例的组合):NSData、NSString、NSNumber、NSDate、NSArray 或 NSDictionary。如果要存储任何其他类型的对象,通常应该将其归档以创建 NSData 的实例。有关更多详细信息,请参阅首选项和设置编程指南。-- 来自文档

您需要使用 NSKeyedArchiver 将 CLLocation 数据转换为 NSData。然后使用 NSKeyedUnarchiver 将 NSData 转回 CLLocation 数据。

下一个要解决的问题是当您归档 CLLocation 对象并将它们存储在 UserDefaults 中时,不会正确取消归档。唯一的解决方案可能是将它们保存到文件中。

于 2013-08-01T23:59:21.373 回答
0

这应该足以编写它:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:yourArray forKey:@"clArray"];
[defaults synchronize];
于 2011-02-24T13:07:42.330 回答
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"];
于 2011-02-24T13:11:35.637 回答