Swift アプリケーションで Parse local-datastore を有効にしました。リモート データをローカルと同期したいのですが、ポインタ配列の問題に直面しています。
私はこのような PFSubclass を持っています:
class ShotModel : PFObject, PFSubclassing {
@NSManaged var status: String?
@NSManaged var pics: [PicModel]?
}
また、status
Parse サーバーで更新すると、データはローカル データストアと同期されますが、pics
ポインター配列を更新すると、ローカル データは変更されません。
例えば:
- 1 つのショットとその 3 つの写真のみを含むショット リスト (ショットの配列) をフェッチします。
- サーバーから良好な応答が得られます (1 つのショットとその 3 つの写真を含むアレイ)
- Parseサーバーでこのショットを4枚の写真で更新します
- 1 つのショットとその 4 つの写真を含むはずのショット リストを再取得します。
- 応答が間違っています: ショットには 3 つの写真しかありません
クエリの結果は次のとおりです。
[<Shot: 0x170382d80, objectId: VwA1Qc9NBN, localId: (null)> {
pics = (
"<Pic: 0x14ee64460, objectId: h5TGCb8BAx, localId: (null)> {\n \n}",
"<Pic: 0x14ee645d0, objectId: fZ61mvMUAM, localId: (null)> {\n \n}",
"<Pic: 0x14ee634f0, objectId: g8Wbxyk8E3, localId: (null)> {\n \n}"
);
status = Done;
}]
1 つ、2 つ、またはすべての写真を削除しても、同じ結果が得られます。
リモート フェッチを行うと、応答クエリは常に古いポインター配列リストを返します。理由はわかりません。
なぜ parse がそのように振る舞うか知っていますか、それとも何か間違ったことをしていますか?