ParseObject parseObject = new ParseObject("GameData");
parseObject.setObjectId("id-111"); // it won't work
所以我创建了自己的id:
parseObject.add("id","id-111");
但是当每次我尝试更新相同id的数据时,它会为它创建不同的条目。
一个解决方案是,我可以获取ParseObject的id,然后更新所获取的对象。
但是需要2次网络操作
有其他解决办法吗?
你不需要提前设置objectId, parse会以正确的格式(如"MBcQomMdzU")为你做,如果你提前知道对象的id,你只需要设置它们,对于新的对象,让平台来做这项工作。
如果你提前设置了objectId,你是在创建对现有对象的引用,其中包含空的数据字段,你可能会使用,但你仍然需要告诉它获取数据字段,方法如fetch, fetchIfneeded, fetchInBackgroundWithBlock是可用的…
@PetrV是绝对正确的,我们不应该自己创建objectId。
One solution is that i can fetch ParseObject for that id and then update that fetched object.
您的这种方法是正确的,我觉得唯一的方法,以确保您正在更新正确的ParseObject。
另一种可能的方法是通过调用yourObject.getObjectId()
来获取Parse自己创建的objectId,然后更新与此id匹配的对象。然而,这也将涉及两个网络调用。
上面唯一的事情将节省你从创建一个额外的列,即id,因为你已经在你的代码。:)