共有グループコンテナーとカスタムフレームワークを使用して同じコアデータストアにアクセスするWatchKit 1.0でiOS/Apple Watchアプリを作成しました。今、watchOS 2.0の移行ガイドで、Appleはこう言っています:
既存のWatchアプリとiOSアプリが共有グループコンテナーまたはiCloudを使用してデータを交換する場合、watchOS 2でそのデータを交換する方法を変更する必要があります。WatchKit拡張機能がApple Watch 、拡張機能はワイヤレスでiOSアプリとデータを交換する必要があります。これは、NSURLSessionオブジェクトを使用するか、iOSアプリとWatchKit拡張機能間の双方向通信をサポートするWatch Connectivityフレームワークを使用して行うことができます。
ただし、これはコアデータとどのように連携しますか?時計のDocumentsフォルダーと電話の2つの別々のストアを維持し、Watch Connectivityフレームワークを使用して変更を同期する必要がありますか? watchOS 2.0がCore Dataフレームワークにアクセスできることがわかります(これは Available Technologies のリストにあります)...しかし、ストアが電話に配置されている場合にどのように役立つかわかりません。どんな助け/ガイダンスもありがたいです!
はい、2つの別個のストアを維持する必要があります。いずれかの側が「読み取り専用」クライアントであり、CoreDataデータストアが小さく、変更頻度が低い場合、transferFile WatchConnectivity APIを使用して、変更するたびにストア全体を転送することができます。
最初の実行時にストアを転送した後、ユーザー情報のバックグラウンド転送を使用して同期を設定し、(必要に応じて)各データベース操作を双方向にミラーリングすることをお勧めします。
WWDCセッション713-時計接続の紹介では、必要なメカニズムについて説明します。彼らがまとめた素晴らしいAPI。