我做了些蠢事,但不确定是什么。这是我的代码:
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
答案 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的值。
此外,如果有疑问,请在代码中设置断点并使用调试器检查数组中的对象。