0

我试图将经度和纬度转换为 NSNumbers 以将它们保存在核心数据中。

按照我的代码:

获得坐标

CLLocationCoordinate2D coordinate = [[mapView.annotations objectAtIndex:0] coordinate];
    NSLog(@"Long2: %f", coordinate.longitude);
    NSLog(@"Lat2: %f", coordinate.latitude);

输出

2013-04-28 20:22:05.918 [1892:16a03] Long2: -122.406417
2013-04-28 20:22:05.918 [1892:16a03] Lat2: 37.785834

设定值:

[members.eventDTO setLatLong:coordinate];
- (void)setLatLong: (CLLocationCoordinate2D)coordinate{
    self.locLatitude = [NSNumber numberWithDouble:coordinate.latitude];
    self.locLongitude = [NSNumber numberWithDouble:coordinate.longitude];
}

然后我尝试了输出:

NSLog(@"Long2: %f", [members.eventDTO.locLongitude doubleValue]);
NSLog(@"Lat2: %@", members.eventDTO.locLatitude);

2013-04-28 20:22:05.918 [1892:16a03] Long2: 0.000000
2013-04-28 20:22:05.919 [1892:16a03] Lat2: (null)

有什么线索可以归还吗?

4

1 回答 1

0

根据您在问题中的描述,在您的setLatLong:方法中设置该对象后,该对象似乎仍然为零。我可以在这里提出的建议是:

  • 尝试在您的setLatLong:方法中记录 NSNumber 以检查它们是否被正确创建;
  • 设置后尝试记录 self.locLatitude 和 self.locLongitude,查看它们是否分配正确。
  • NSManagedObject 是否被正确创建?
  • 你在调用保存到你的 NSManagedObjectContext 吗?

请发布更多信息,以便我们一起解决问题;)

于 2013-04-28T19:03:03.510 回答