0

私のアプリは "テキスト記事"のための何らかの種類のエディタ機能を提供しています。私のエディタには2つのモードがあります。エディタがロードされると、イニシャライザで渡されていない管理オブジェクトが作成されます。ユーザーが新しい編集をキャンセルすると、コンテキストからオブジェクトが削除されます。しかし、ときどき、オブジェクトがコンテキストに挿入されていないというエラーが表示され、時には表示されないことがあります。したがって、管理対象オブジェクトのインスタンスがコンテキストに挿入されているかどうかを確認するには、次のコードを参考にしてください。未保存の管理オブジェクトを安全に削除するにはどうすればよいですか?

if ([[self.workingManagedObjectInstance managedObjectContext] isEqual:self.managedObjectContext]){ 

} 

私の理論は[self.workingManagedObjectInstance managedObjectContext]nilであれば、それが挿入されていないと「isEqual」ではないということです。これは、まだ挿入されていないオブジェクトを削除しないことを確認する有効な方法ですか?

答えて

0

でそれを削除することができ、私は私が保存されなければならないことに気づきました管理オブジェクトの初期インスタンスを作成した後の私のコンテキスト。私はまだそれを参照していたので、後でそれを削除することができました。

1

可能であれば、常にさまざまなインスタンスではなく、同じ管理オブジェクトコンテキストを使用する必要があります。複数のビューコントローラを使用している場合は、同じコンテキストを参照として渡す必要があります。コンテキストを比較しても、エンティティインスタンスの存在については何も教えてくれません。

あなたは、通常の方法で

myEntity = [NSEntityDescription insertNewObjectForEntityForName:@"Entity" 
    inManagedObjectContext:self.managedObjectContext]; 

をオブジェクトを初期化した後、あなたはそれが存在するかどうかを確認し、私の場合は、単純な

if (myEntity) { 
    [self.managedObjectContext deleteObject:myEntity]; 
} 
関連する問題