hachinoBlog

hachinobuのエンジニアライフ

CoreDataの削除ルール

リレーション関係にある親テーブルのデータを削除したら、そのデータに紐づく子テーブルのデータまで削除されてしまった。
なんでカスケード削除されているのかと思い色々調べたところ、CoreDataの削除オプションを設定できることを知りました。
[DB名].xcdaramodelファイルから表示方法をStyleに変更してリレーション関係を表している矢印をダブルクリックして
右側のUtilitiesのなかにある[Show the Data Model inspector]のDelete Ruleという箇所で設定できる。

削除ルールは下記参照
No Action → 関係先オブジェクトには何もしない
Nullify → 関係先オブジェクトが持っている自分をヌルにする
Cascade → 関係先オブジェクトも一緒に削除する
Deny → 関係先が存在していたら削除できない

参考URL
http://d.hatena.ne.jp/ugon105/20101023/1287845097