2017-06-21 10 views
0

を与えます私は(たとえsaveCoreDataメソッドを呼び出した後)のNSNumberのプロパティのいずれかにアクセスしようとするたびに、しかしは、私は次の形式で自分のコアデータに天気と呼ばれるエンティティを持っているEXC_BAD_ACCESS

WeatherModel *bookmarkWeatherModel = (WeatherModel*)[DatabaseHelper insertNewEntityWithName:@"Weather" andContext:self.weatherManagedObjectContext]; 

[bookmarkWeatherModel setLatitude:[NSNumber numberWithDouble:0.0]]; 
[bookmarkWeatherModel setLongitude:[NSNumber numberWithDouble:0.0]]; 
[bookmarkWeatherModel setCityName:@"CityA"]; 
NSLog(@"%@", bookmarkWeatherModel.cityName); 
NSLog(@"%@", bookmarkWeatherModel.latitude); 

[DatabaseHelper saveCoreData:self.weatherManagedObjectContext]; 

を次のようにDatabaseHelperでI get this error.

insertNewEntityWithName方法は:私は私のモデルと、このエラーを投げるだけのプロパティ内のすべての単一のプロパティにアクセスしようとした

+ (NSManagedObject *)insertNewEntityWithName:(NSString *)entityName 
            andContext:(NSManagedObjectContext *)managedObjectContext { 
    NSManagedObject *entity = [NSEntityDescription insertNewObjectForEntityForName:entityName inManagedObjectContext:managedObjectContext]; 
    return entity; 
} 

はタイプのNSNumberです。他はうまく動作します。

+0

モデルの番号として正しく設定されていますか? –

+0

また、安全にNSNumberからプリミティブ型(Int、Double、モデルに設定されているもの)の安全性に変更できます。あなたがしなければならないのは、プロパティのタイプを変更することだけです。これにより、NSNumbersのラッピングを簡単に行うことができます。 –

答えて

0

明らかに問題は、私が手作業でモデルのコードを書いたことでした。私はコードを自動的に生成することで問題を解決しました。私はxcdatamodelで自分のエンティティを選択し、データモデルインスペクタでClass Name(WeatherModel)とCodegen(Manual/None)を入力してから、Editor> Create NSManagedObject Subclassを選択することでそれを行いました。

関連する問題