繁体   English   中英

在用户默认值iphone sdk中存储cllocation值的数组

[英]store array of cllocation value in userdefaults iphone sdk

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

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

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

[AM_delegate.locationData addObject:currentMapLocation];

人们为什么在明显不知道答案或不知道可以在NSUserDefaults中存储什么的情况下在此处发布?

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

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

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

这应该足以编写它:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:yourArray forKey:@"clArray"];
[defaults synchronize];

用这个

用于设置数组

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"];

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM