0
ParseObject parseObject = new ParseObject("GameData");
parseObject.setObjectId("id-111"); // it won't work

だから私は自分のIDを作成しました:

parseObject.add("id","id-111");

しかし、同じIDのデータを更新しようとするたびに、異なるエントリが作成されます。
解決策の 1 つは、その ID の ParseObject をフェッチし、フェッチしたオブジェクトを更新できることです。
ただし、2つのネットワーク操作が必要です。

これに対する他の解決策はありますか?

4

2 に答える 2

0

事前に objectId を設定する必要はありません。パースは "MBcQomMdzU" のような正しい形式でそれを行います。オブジェクトが事前にわかっている場合は、オブジェクトの ID を設定するだけです。新しいオブジェクトはプラットフォームに作業を任せます。

事前に objectId を設定すると、空のデータ フィールドを持つ既存のオブジェクトへの参照が作成されますが、データ フィールドをフェッチするように指示する必要があります。fetch、fetchIfneeded、fetchInBackgroundWithBlock などのメソッドが利用可能です...

于 2014-08-08T10:09:45.313 に答える
0

@PetrV は完全に正しいので、objectId を自分で作成するべきではありません。

One solution is that i can fetch ParseObject for that id and then update that fetched object.

あなたのこのアプローチは正しく、正しい ParseObject を更新していることを確認する唯一の方法だと思います。

別の可能な方法は、この ID に一致するオブジェクトを呼び出して更新することにより、Parse 自体によって作成されたobjectIdをフェッチすることです。yourObject.getObjectId()ただし、これには 2 つのネットワーク呼び出しも含まれます。

上記の唯一のことは、コードで行ったように追加の列、つまり id を作成することです。:)

于 2014-08-08T13:33:14.273 に答える