- 更新日: 2015年8月6日
- Swift & iOS
Swift/MagicalRecordでCoreDataのエンティティを削除
Swift で MagicalRecord を使っていて CoreData のエンティティ(モデルのオブジェクト・レコード)を削除するやり方です。以下のエントリーを参考に Todo モデルを作成して、その Todo モデルを例にします。task が Todo モデルのオブジェクト。
MagicalRecordをSwiftで使う導入〜設定までの手順 | EasyRamble
MagicalRecord を使うと、エンティティの削除操作をとても簡単に行えます。
MR_deleteEntity(), MR_truncateAll() で削除
task オブジェクトを削除。
1 |
task.MR_deleteEntity() |
Todo モデルの全てのエンティティ(レコード)を全削除。
1 |
Todo.MR_truncateAll() |
この全部削除する場合の書き方は、最初に Rails(ActiveRecord#delete_all)と同じだろうと予想して、Todo.MR_deleteAll() と書いたら動かなかったので Rails 脳な人はちょっと注意です。
コンテキストを指定して、以下のような削除の書き方もできるらしい。
1 2 |
task.MR_deleteInContext(NSManagedObject) Todo.MR_truncateAllInContext(context: NSManagedObjectContext!) |
が、コンテキストというのが何のこっちゃか分かりません><。以下のエントリーを読んだところ、スレッドのコンテキストを指定できるということ…かな?
以下 Objectvie-C の例ですが、MagicalRecord の GitHub ページの公式 Wiki を参考にしました。
To delete a single entity in the default context:
[myPerson MR_deleteEntity];To delete the entity from a specific context:
[myPerson MR_deleteEntityInContext:otherContext];To truncate all entities from the default context:
[Person MR_truncateAll];To truncate all entities in a specific context:
[Person MR_truncateAllInContext:otherContext];
MagicalRecord 便利です。
- Swift & iOS の関連記事
- WKWebView/UIWebViewでウェブページが真っ白
- Unityのインストールと初期設定
- WKWebView/UIWebViewでNavigation Barの下にウェブページが隠れるのを回避
- SwiftでArray(配列)などをシャッフル
- Navigation Controllerで画面遷移させるSwiftコード
- Swiftでタップ/スワイプのイベント処理実装・UITapGestureRecognizerとUISwipeGestureRecognizer
- UIPageViewController画面下部のUIPageControlを非表示にする
- Swiftのバージョン確認・REPL実行
- Xcode7.0アップデートで遭遇した課題2つ
- 正規のXcodeかどうかチェック(XcodeGhostマルウェア騒動)
Leave Your Message!