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

緯度と経度の値を double ではなく NSNumber として保存する必要があります。

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

アップデート

Favorites エンティティの場合、placeLatitude 属性は double である必要があります。ただし、NSManagedObject サブクラスの Favorites を使用する場合は、NSNumber を使用して placeLatitude を設定する必要があります。Core Data は NSNumber を使用して、int、float、double、bool などのプリミティブを格納します。

Xcode に Favorites クラスを生成させます。左ペインで Core Data データ モデルを選択し、次に Xcode -> Editor -> Create NSManagedObject Subclass を選択します。

于 2013-06-25T12:10:24.633 に答える