Swiftで遊ぼう! - 607 - Multiple Managed Object Contextsチュートリアル 11
- Swiftで遊ぼう!の前書き-> Life-LOG OtherSide
- Swift2.1 & Xcode7.1対応の日本語版アップルチュートリアル!
- Table View実装チュートリアルをXcode7.2.1で解説
- Core Data シンプルチュートリアル
- 私の本業、オフィシャルなブログ-> Life-LOG
NSPersistentStoreCoordinatorの働きはバックグラウンドでやらせます。
以前マルチスレッドの話をしたときにちょっと説明しましたが、デフォルトで普通にコードを書くと全てメイン・キューで処理されます。時間のかかるデーターベースへのデータ書き込み、外部ファイルへの書き出し、UI(ユーザーインターフェイス)の反応もメインキューで動くと、外部ファイルへの書き出しのような時間のかかる作業をしている間、UIは無反応になってしまいます。これはアプリとして問題があります。
iOSの開発環境の王道を行けば、メイン・キュー以外のQOSとして別スレッドを立てることだと思います。しかし、Core Data managed object contextsは、アップルの用意しているマルチスレッドの仕組みに合わないようです。SQLiteはアップルの用意した仕組みではないため、歪みが生じるのでしょう。これを簡単に解決する方法は、もう一つmanaged object contextsを用意して、バックグラウンド・キューで動かしてやるという考え方です。
実装をする前に、「Export」ボタンの機能について考えます。
それは明日(^_^;)