私のプロジェクトでは、iOS 10アプリケーションとwatchOs 3アプリケーションを同時に使用して1つのRealm Databaseを使用したいと考えています。だから私がしたのは、3つの異なるターゲット用の組み込みバイナリにフレームワークを追加することでした。これはうまくいきましたが、watchKit拡張機能は、iOS環境内で作成したオブジェクトを認識していないようです。これらの2つのデバイス間で共有レルムデータベースを使用することはどのように可能ですか?RealosデータをWatchOSと共有する
答えて
更新: さて、chrisamanseのヘッドアップのおかげで、私はこの上でいくつかのより多くの研究をしました。
watchOS 2ではApp Groupsが使用できなくなっていることが判明しました。ウォッチアプリは、電話機の内線として実行されなくなりました。共有リソースを持たない2つの独立したプロセスになりました。
このように、これは時計と電話機の両方に別々のレルムファイルを保持し、いずれかの変更をWatchConnectivityフレームワークを通じて伝達する必要があることを意味します。
オリジナル: のiOSアプリケーションや拡張機能(今日のウィジェットやwatchOSのアプリの両方)は、独自の別々の容器に2つの完全に独立したエンティティとして検討する必要があります。デフォルトでは、拡張機能は親アプリケーションのコンテナ内のファイルにアクセスできません。 Realmファイルをデフォルトパス( 'Documents'フォルダ)に保存している場合、そこからwatchOSアプリケーションがアクセスする方法はありません。
ありがたいことに、iOSの 'App Groups'機能を使用して、親iOSアプリとwatchOSアプリの両方がアクセスできる共有フォルダを指定し、そこにあるRealmファイルを読み書きすることができます。
アプリ内でApp Groups
の資格を有効にしたら、Realmファイルの場所をその場所を指すように設定するだけです。
let sharedContainerURL = NSFileManager.defaultManager().containerURLForSecurityApplicationGroupIdentifier("group.my.appgroups.bundleid")!
let realmURL = sharedContainerURL.appendingPathComponent("SharedRealm.realm")
let realmConfiguration = Realm.Configuration()
realmConfiguration.fileURL = realmURL
let realm = try! Realm(configuration: realmConfiguration)
しかしAPIとスウィフトのバージョンは、この時点で期限が切れている、より詳細にこの作業を行う方法について説明しa tutorial on the Realm websiteがあります。
がスイフト
についてIアプリとアプリ拡張の間dbのレルムを共有するために、次のコードを使用する:
let sharedDirectory: URL = FileManager.default.containerURL(forSecurityApplicationGroupIdentifier: "group.your.app")! as URL
let sharedRealmURL = sharedDirectory.appendingPathComponent("db.realm")
Realm.Configuration.defaultConfiguration = Realm.Configuration(fileURL: sharedRealmURL)
- 1. iOS 10とWatchOS 3(共有コンテナ)の間でデータを共有
- 2. NSUserDefaultsを使ってiOSとwatchOSの間でデータを共有しますか?
- 3. WatchOS 3インターフェース間の情報とアクションを共有
- 4. データ配信と共有メモリ
- 5. ListViewとアクティビティの共有データ
- 6. 共有データにアクセスするサービスとアクティビティ
- 7. アプリケーション間のデータ共有 - 共有メモリとD-Busとファイル操作
- 8. Linkedin共有データ
- 9. 共有データ - angular2
- 10. ドメイン間の共有データ - ドメイン間で共有されるデータ
- 11. コントローラ間でデータを共有し、コントローラ間でデータを共有する角度
- 12. アプリケーション固有のデータ型をサーバーとクライアントで共有する
- 13. 共有ポイント上で共通のデータを共有
- 14. 共有フォルダにデータ
- 15. Firebaseセキュリティ - 共有データ
- 16. HANA共有ディレクトリ内のグローバル共有データのデータ
- 17. PHPとJavascript/AjaxのJSONデータを共有
- 18. Firebaseの友達とデータを共有
- 19. Azure SQLデータを外部ユーザーと共有
- 20. phonegapとinappbrowserの間でデータを共有
- 21. でデータを共有するには、rootscope
- 22. ビュー間でデータを共有する
- 23. コントローラ間でデータを共有するAngularJS
- 24. シナリオ間でデータを共有するSpecflow
- 25. ビューポート間でデータを共有する
- 26. 設定データを共有するGIT
- 27. appengineモジュール間でデータを共有する
- 28. LinqPad - クエリ間でデータを共有する
- 29. MultiViewアプリケーションでデータを共有する
- 30. オブジェクト間でデータを共有するシングルトンパターン
watchOS 2.0のように、アプリケーショングループはもはや適用されません。 https://forums.developer.apple.com/thread/3927 – chrisamanse
唯一の選択肢は、 'WatchConnectivity'フレームワークの使用です。 – chrisamanse
ああ!それが私にとってのニュースです!ヘッドアップありがとう! – TiM