将CLLocation纬度从坐标插入NSMutable Array

时间:2015-05-26 19:37:31

标签: ios cllocation

我做了些蠢事,但不确定是什么。这是我的代码:

NSMutableArray *latitudes = [[NSMutableArray alloc] init];


NSMutableArray *locationArray = [NSMutableArray array];
for (CLLocation *location in self.allPins) {
    Location *locationObject = [NSEntityDescription insertNewObjectForEntityForName:@"Location"
                                                             inManagedObjectContext:self.managedObjectContext];

    locationObject.timestamp = location.timestamp;
    locationObject.latitude = [NSNumber numberWithDouble:location.coordinate.latitude];
    locationObject.longitude = [NSNumber numberWithDouble:location.coordinate.longitude];
    [locationArray addObject:locationObject];
    [latitudes addObject:[NSNumber numberWithFloat: location.coordinate.latitude]];
    NSLog(@"here is the array for latitudes count: %d", latitudes.count);
    NSLog(@"here is the value for first latitude: %d", latitudes[0]);
}

self.allPins包含从CLLocationManager收到的所有地点。一旦用户完成移动并想要保存,我运行上面的代码片段以将轨迹加载到CoreData类中以保存在用户的电话上以及数据中以在线上传数据。我想拥有一系列纬度经度等,但这并不算好。虽然我可以很好地将信息插入到我的CoreData对象中,但我似乎无法简单地提取双重/浮点数(尝试两种方式,但我认为它不应该有所作为?)CLLocation坐标。当我运行以下代码时,我得到了纬度数组的计数,但我对该值无效:

2015-05-26 15:25:22.934 MileRun[665:196255] here is the value for first latitude: 426649664

1 个答案:

答案 0 :(得分:1)

你没有打印NSNumber的值,但是我认为是NSNumber的地址(如果不是426649664,有人可能会在这里纠正我的日志)。

NSLog(@"here is the value for first latitude: %d", latitudes[0]);更改为

NSLog(@"这里是第一纬度的值:%f",纬度[0] .floatValue);

NSLog(@"here is the value for first latitude: %@", latitudes[0]);

更多信息编辑: 格式说明符%d用于整数。您可以使用对象的格式说明符打印出NSNumber,即%@。这将允许您使用NSLog(@"number = %@", latitudes[0])进行登录并以此方式获取NSNumber的值。

此外,如果有疑问,请在代码中设置断点并使用调试器检查数组中的对象。