我试图在核心数据中保存纬度和经度,但导致无法访问。 这是代码:
编辑:
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];
我不知道为什么会这样。任何帮助将不胜感激。
P.S lat 和 lng 在我打印它们时具有值(value)
最佳答案
您需要将纬度和经度值保存为 NSNumber 而不是 double 值。
NSNumber *latitude = [NSNumber numberWithDouble:lat];
[fav setPlaceLatitude:latitude];
更新
对于您的收藏夹实体,placeLatitude 属性应该是 double 值。但是,在使用NSManagedObject子类Favorites时,需要使用NSNumber来设置placeLatitude。 Core Data 使用 NSNumber 来存储原语,例如 int、float、double、bool。
让 Xcode 生成您的收藏夹类。在左侧 Pane 中选择 Core Data 数据模型,然后选择 Xcode -> Editor -> Create NSManagedObject Subclass。
关于ios - 尝试将纬度和经度保存到核心数据会导致访问错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17296485/