0

新しく挿入されたオブジェクトのインスタンス変数を設定し、この変数がゼロの場合にユーザーがそれを削除できないようにする NSArrayController サブクラスがあります。

エンティティ サブクラス内でこれを行いたいと思います。変数の設定はawakeFromInsertメソッドで可能です。一種の削除を防ぐ方法はありますか:

if (self.testVariable == 0) return;   ?

見つけられませんでしたが、何かを見逃したのかもしれません。

4

2 に答える 2

1

これを NSManagedObject に実装します。

- (BOOL)validateForDelete:(NSError **)error
于 2012-09-24T15:37:54.637 に答える
1

いくつかのテストに基づいて、validateForDelete必要に応じて削除を防ぐことはできないと思います。

validateForDelete削除する前に追加の検証を実行するために使用されます。基本的に、メソッド名は誤解を招きます。たとえば、

さらに、prepareForDelete事前に呼び出され、すべての関係を削除し、Cascadenull をマークしますNullify。したがって、それらは「バックアウト」する必要があります。または、データ モデルを変更して、Denyこれらの関係を prepareForDelete に残すことのみを許可します。ビジネスモデルとロジックに厳しいバックハンドを適用しています。

さらに、Denyユーザーがデータを保存すると、関係が「拒否」されます。これは、ユーザーが状況を元に戻したり修正したりするには遅すぎる可能性があります。

最良のオプションはcanRemove、コントローラーのメソッドにバインドされている削除ボタンを非アクティブにすることだと思います。

いくつかの堅実な意見 SO で考えられるいくつかの解決策

于 2013-04-26T20:57:29.210 に答える