解析android文档说明了这一点:
对象可以与其他对象建立关系。要对此行为建模,任何ParseObject都可以用作其他ParseObjects中的值。在内部,Parse框架将把引用的对象存储在一个地方,以保持一致性。
我理解的是当我为 put :
执行此操作时firstObject =new ParseObject("A");
secondObject= new ParseObject("B");
secondObject.put("A",firstObject);
根据blockquote的最后一行,这意味着该对象不是在B中创建的,它只是将指针存储在B中(对于A)
现在这个 createwithoutdata :
您也可以仅使用objectIds来链接对象:
// Add a relation between the Post with objectId "1zEcyElZ80" and the comment
myComment.put("parent", ParseObject.createWithoutData("Post", "1zEcyElZ80"));
这也意味着使用指针代替对象,对吗?
put和createwithoutdata之间的区别是什么?你使用每个用例的用例是什么?
修改
ParseObject parseObject=new ParseObject("TestClass");
ParseObject parseObject1=new ParseObject("TestObject");
parseObject.put("ps1",ParseObject.createWithoutData("TestObject",parseObject1.getObjectId()));
parseObject.saveEventually();
每次创建新实例时......
答案 0 :(得分:1)
实际上你并没有问正确的问题。 put
和createWithoutData
之间的区别在于它们是完全不同的方法,完全不相关的目的。在您描述的两种情况下,您使用的是相同的put
方法。不同之处在于您创建ParseObject
的方式。在您的第一个示例中,我相信当您将其写入数据库时,它将插入B行,然后插入带有指向B的指针的A行。在第二个示例中,您使用的是Post行中的ID。已经在数据库中,并将指向该行的指针写入Comment行。