2017-03-28 6 views
0

これは私のコードコアデータがこのコードで永続性を維持しないのはなぜですか?

+(FavouritesModel *) saveFavourites: (NSString *) title and: (NSString *) subtitle{ 

FavouritesModel *saveData = [[FavouritesModel alloc] init]; 
saveData.context = [saveData managedObjectContext]; 
NSManagedObject *task = [[Favourites alloc] initWithContext:saveData.context]; 

[task setValue:title forKey:@"title"]; 
[task setValue:subtitle forKey:@"subtitle"]; 

NSString *titleStr = [task valueForKey:@"title"]; 
NSString *subtitleStr = [task valueForKey:@"subtitle"]; 

[saveData.favouritesData addObject:titleStr]; 
[saveData.favouritesData addObject:subtitleStr]; 

AppDelegate *appDelegate; 
[appDelegate saveContext]; 

return saveData; 
} 

私が保存されますが、それは永続いない必要なデータです。私はアプリケーションの代理人でも "applicationWillTerminate"でsaveContext()メソッドを使用しました。アプリを終了して再開しても、そのデータはありません。

EDIT 私は5クラスでメソッドを呼び出すためにモデルクラスを使用しています。

データの永続性を実装するために追加する必要があるものは何ですか?

+0

は、あなたは自分のデータベースをチェックアウトすることはできますか?あなたのcoredataエンティティを保存したらエントリがなければなりません –

答えて

0

これらの行の第二にブレークポイントを入れて

AppDelegate *appDelegate; 
[appDelegate saveContext]; // <----- here 

appDelegateが正しく設定されていないと、ブレークポイントは、これを確認します。

それは設定する必要があり、このような[何か]:

// untested 
appdelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate]; 
+0

良いキャッチ(y)、これはakshayを助けるでしょう –

+0

あなたが言った最後の行を追加して、仕事をした! それはクラスメソッドだったので、メソッドの中に別のAppDelegateオブジェクトを作成しなければならなかったので、私は逃しました--- appdelegate =(AppDelegate *)[[UIApplication sharedApplication] delegate]; ありがとう! –