【发布时间】:2014-03-31 12:03:30
【问题描述】:
我正在尝试构建一个跟踪路线的应用程序,然后将路线存储在 parse.com 中,这样我就可以使用 MKpolyline 覆盖用户采取的路线。
我是 Objective-c 和 IOS 开发的新手,所以请原谅我的无知!
当我尝试保存所采取的路线时,我卡住了,然后发送/保存位置数组,以便我可以在用户完成活动时打开的下一个视图控制器上重建 MKpolyline。
我不确定是将位置数组保存到 NSUserDefaults 还是将其保存到核心数据。目前我正在将 Array 转换为 NSValue 并将其保存到 NSUserDefaults,如下所示:
count = [self.locations count];
CLLocationCoordinate2D coordinates[count];
for (NSInteger i = 0; i < count; i++) {
coordinates[i] = [(CLLocation *)self.locations[i] coordinate];
NSValue *locationValue = [NSValue valueWithMKCoordinate:coordinates[i]];
[_locationsArray addObject:locationValue];
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:totalDistance forKey:@"totalDistance"];
[defaults setObject:_locationsArray forKey:@"mapOverlay"];
// [defaults setDouble:_totalTime forKey:@"totalTime"];
[defaults setObject:avgSpeedToBeSaved forKey:@"averageSpeed"];
[defaults setObject:totalCalories forKey:@"totalCalories"];
[defaults synchronize];
这是正确的方法吗?以及如何重建位置数组。
如果有人能指出我正确的方向,将不胜感激。
我现在已将我的代码更改为 manecosta 建议的代码,以重建 CLLocationCoordinates 以创建 MKPolyline,但我现在的问题是数组为 Null,从我开始转换为 NSValue 的位置开始。我无法弄清楚为什么会这样,首先我构建 LocationsArray 的方式有问题吗?
【问题讨论】:
-
您是否尝试过使用
objectForKey:从 userDefaults 中读取对象?数组将被适当地重新创建。 -
@Merlevede 我不需要坐标来构建 MKPolyline 吗?而不是 NSValues?谢谢
标签: ios objective-c core-data nsuserdefaults