マギアレコードで試してみることにしたコアデータベースのアプリがあります。(基本的に、MRは私が書いたヘルパークラスが行うことの多くを行うようです)
ただし、モデルに基づいてデータベースを作成しましたが、新しく挿入されたオブジェクトを使用してコンテキストを保存しようとすると、成功したように見えますが、データベースには何も作成されません。新しいオブジェクトが保存しようとしているコンテキストにあることを確認するためにステップスルーしました。保存するように指示します。エラーは作成されませんが、データはありません。私がここで見逃している明らかな何かがあると思います。
- (void)saveContext:(NSManagedObjectContext*)context withMessage:(NSString*)messageString
{
NSError *error = nil;
NSString *message = messageString;
NSManagedObjectContext *managedObjectContext = nil;
if (!context) {
managedObjectContext = [NSManagedObjectContext defaultContext];
} else {
managedObjectContext = context;
}
if(!message) {
message = @"Data Saved";
}
if ([managedObjectContext hasChanges]) {
[managedObjectContext save:&error];
if (error) {
NSLog(@"Save Error: %@", [error localizedDescription]);
}
else {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Save Successful!"
message:message
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
}
}
}
何か洞察はありますか?前述したように、スタックがセットアップされていること(App DelegateのapplicationDidFinishLoadingメソッドでストアに名前を付けている)、および対応するデータベースが適切なテーブルとともに予期された場所に存在することを確認できます。予期された新しく挿入されたオブジェクトがmanagedObjectContextのinsertedObjectsに存在し、保存に起因するエラーがないことを確認できます。ただし、保存後、データはありません。(明らかに、managedObjectContextにもありません)
前もって感謝します。