Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 607 - Multiple Managed Object Contextsチュートリアル 11

NSPersistentStoreCoordinatorの働きはバックグラウンドでやらせます。

www.raywenderlich.com

以前マルチスレッドの話をしたときにちょっと説明しましたが、デフォルトで普通にコードを書くと全てメイン・キューで処理されます。時間のかかるデーターベースへのデータ書き込み、外部ファイルへの書き出し、UI(ユーザーインターフェイス)の反応もメインキューで動くと、外部ファイルへの書き出しのような時間のかかる作業をしている間、UIは無反応になってしまいます。これはアプリとして問題があります。

iOSの開発環境の王道を行けば、メイン・キュー以外のQOSとして別スレッドを立てることだと思います。しかし、Core Data managed object contextsは、アップルの用意しているマルチスレッドの仕組みに合わないようです。SQLiteはアップルの用意した仕組みではないため、歪みが生じるのでしょう。これを簡単に解決する方法は、もう一つmanaged object contextsを用意して、バックグラウンド・キューで動かしてやるという考え方です。

実装をする前に、「Export」ボタンの機能について考えます。

f:id:yataiblue:20160304154935j:plain

それは明日(^_^;)