問題タブ [ensembles]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - CoreData を iCloud に保存する
現在、顧客データを CoreData データベースに保存する macOS アプリケーションを作成しています。
今、そのデータをiCloudに保存したいと思います。アイデアは、すべてのユーザーが自分の iCloud に独自のデータを持っているということです。彼が複数の Mac/iOS デバイスを使用している場合、彼は自分のデータにアクセスできます。
そのため、すべての顧客に対してデータ ストレージを集中管理するのではなく、顧客ごとに個別にデータ ストアを作成します。
CloudKit に関するいくつかのトピックを読みましたが、一般的に混乱していました。
- CloudKit は、グローバル データのデータ ストレージを提供します (例: 顧客のデータを保存したい)
- CoreData をすべての顧客の iCloud アカウントにストーリー化する可能性はありますか?
- もしそうなら、これはCloudKitで可能ですか、それともEnsemblesのようなサードパーティのライブラリを使用する必要がありますか? (2016 年のスレッドで、Apple は iCloud 経由で CoreData を使用する可能性を却下したが、現在は Ensemble のようなサードパーティのライブラリのみが機能すると述べている)
誰かがこれで彼の経験を教えてもらえますか?
ありがとうございました
ios - アンサンブルとのコア データの同期: リモートの変更は、ローカル モデルが変更されるまでプルダウンされません。
iCloudをバックエンドとして使用してEnsemblesフレームワークを統合しようとしているコアデータアプリケーションがあります。あるデバイスで変更を行う場合、リモートの変更を取得するには、変更を加えて他のデバイスにコンテキストを保存する必要があることを除いて、ほとんどのことが機能しています。
データを反映するテーブルビューは に準拠していNSFetchedResultsControllerDelegate
ます。ローカル データが変更され、リモートの変更が取得されると、リモートの変更が正しく反映されます。
手動で呼び出す「同期」ボタンsyncWithCompletion
(下記) を実装すると、変更が反映されません。
を呼び出して 2 分ごとに起動するタイマーはsyncWithCompletion
、変更を取得しません。
同期をオフにしてから再度オンにすると、変更が反映されます。
アプリを再起動しても変更は反映されません。
私が間違っているアイデアはありますか?
[コメントが長すぎるので編集]
まず、ローカルに保存してクラウドに変更がある場合は呼び出されdidSaveMergeChangesWithNotification
ません(変更が反映されていると仮定します-知る方法はありますか?それを除外するためにかなり長い間待ちました)。手動同期をトリガーすると呼び出されます。これは、ローカル モデルに変更を加えてコンテキストを保存したときにのみ呼び出されます。それが私をどこに残すのか、私にはよくわかりません。次に、フェッチ コントローラーを確認すると、クラウド内の変更は実際にはプルダウンされていません。私はCDELoggingLevelVerbose
調査を続けることにしましたが、私が根本的に間違っていることを知っています。
また、これは非常に大きな変更です。Ensembles Github の古い問題から、シミュレーターで iCloud 同期をトリガーすると実際に機能することに気付きました! 残念ながら、私はデバイスを持っていないので、すべてのテストをシミュレーターで行っています (テスト中にあまりにも多くの iCloud ログインで iPhone を焼き尽くしました)。これでしょうか?これが実際に正常に動作していると確信できますが、シミュレーターに実際に iCloud 同期をトリガーさせない何かがありますか?