NSBatchDeleteRequestの紹介

CoreDataのデータを全部削除する時って、以下のようなコードで行ってました。(エラー処理は省略してます)

fetchして削除

もちろん、動作としては、期待する動作になっているのですが、動作の内容を考えると、一度、データベースからメモリ上に読み込んで削除して、それをデータベースに反映するという動作をしているんですよね。少しもったいないですよね。

iOSだとiOS9から、MacOSだとMacOS10.11以降に、NSBatchDeleteRequestという削除をバッチで行うためのクラスが実装されてました。
以下のような形で使うことができます。

バッチ削除

動作的には、こちらの方が早いです。

バッチ処理向けには、NSBatchDeleteRequestの他に、NSBatchUpdateRequestがあります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です