新しく挿入されたオブジェクトのインスタンス変数を設定し、この変数がゼロの場合にユーザーがそれを削除できないようにする NSArrayController サブクラスがあります。
エンティティ サブクラス内でこれを行いたいと思います。変数の設定はawakeFromInsertメソッドで可能です。一種の削除を防ぐ方法はありますか:
if (self.testVariable == 0) return; ?
見つけられませんでしたが、何かを見逃したのかもしれません。
新しく挿入されたオブジェクトのインスタンス変数を設定し、この変数がゼロの場合にユーザーがそれを削除できないようにする NSArrayController サブクラスがあります。
エンティティ サブクラス内でこれを行いたいと思います。変数の設定はawakeFromInsertメソッドで可能です。一種の削除を防ぐ方法はありますか:
if (self.testVariable == 0) return; ?
見つけられませんでしたが、何かを見逃したのかもしれません。
これを NSManagedObject に実装します。
- (BOOL)validateForDelete:(NSError **)error
いくつかのテストに基づいて、validateForDelete
必要に応じて削除を防ぐことはできないと思います。
validateForDelete
削除する前に追加の検証を実行するために使用されます。基本的に、メソッド名は誤解を招きます。たとえば、
さらに、prepareForDelete
事前に呼び出され、すべての関係を削除し、Cascade
null をマークしますNullify
。したがって、それらは「バックアウト」する必要があります。または、データ モデルを変更して、Deny
これらの関係を prepareForDelete に残すことのみを許可します。ビジネスモデルとロジックに厳しいバックハンドを適用しています。
さらに、Deny
ユーザーがデータを保存すると、関係が「拒否」されます。これは、ユーザーが状況を元に戻したり修正したりするには遅すぎる可能性があります。
最良のオプションはcanRemove
、コントローラーのメソッドにバインドされている削除ボタンを非アクティブにすることだと思います。