3

我试图在核心数据中保存纬度和经度,但导致访问不正确。这是代码:

编辑 :

Favourites *fav = (Favourites *)[NSEntityDescription insertNewObjectForEntityForName:@"Favourites" inManagedObjectContext:_managedObjectContext];

NSString *str = [NSString stringWithFormat:@"%@",point.title];
int index =[sharedRequest.name indexOfObject:str];
[fav setPlaceName:str];

double lat = [[sharedRequest.latArray objectAtIndex:index] doubleValue];
double lng = [[sharedRequest.lngArray objectAtIndex:index] doubleValue];

[fav setPlaceLatitude:lat];
[fav setPlaceLongitude:lng];

我不知道为什么会这样。任何帮助都是不言而喻的。

PS lat 和 lng 在我打印时很有价值

4

1 回答 1

4

您需要将纬度和经度值保存为 NSNumber 而不是双精度值。

NSNumber *latitude = [NSNumber numberWithDouble:lat];
[fav setPlaceLatitude:latitude];

更新

对于您的收藏夹实体,placeLatitude 属性应该是双精度。但是,在使用NSManagedObject 子类Favorites 时,需要使用NSNumber 来设置placeLatitude。Core Data 使用 NSNumber 来存储 int、float、double、bool 等原语。

让 Xcode 生成您的收藏夹类。在左侧窗格中选择 Core Data 数据模型,然后选择 Xcode -> Editor -> Create NSManagedObject Subclass。

于 2013-06-25T12:10:24.633 回答