2

Swift アプリケーションで Parse local-datastore を有効にしました。リモート データをローカルと同期したいのですが、ポインタ配列の問題に直面しています。

私はこのような PFSubclass を持っています:

class ShotModel : PFObject, PFSubclassing {
  @NSManaged var status: String?
  @NSManaged var pics: [PicModel]?
}

また、statusParse サーバーで更新すると、データはローカル データストアと同期されますが、picsポインター配列を更新すると、ローカル データは変更されません。

例えば:

  1. 1 つのショットとその 3 つの写真のみを含むショット リスト (ショットの配列) をフェッチします。
  2. サーバーから良好な応答が得られます (1 つのショットとその 3 つの写真を含むアレイ)
  3. Parseサーバーでこのショットを4枚の写真で更新します
  4. 1 つのショットとその 4 つの写真を含むはずのショット リストを再取得します。
  5. 応答が間違っています: ショットには 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 がそのように振る舞うか知っていますか、それとも何か間違ったことをしていますか?

4

1 に答える 1