0

我知道这个问题已经被问了很多,但是没有一个解决方案适合我的场景。我正在尝试将对象添加到当前用户的关系中。请注意,将对象添加到关系中没有问题,除非具有 PFRelation 的对象是 PFUser。

以下工作正常:

let testChild: PFObject = PFObject(className: "TestChild")
testChild["name"] = "test"
testChild.saveInBackgroundWithBlock { (success, error) -> Void in
  let testParentQuery: PFQuery = PFQuery(className: "TestParent")
  testParentQuery.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in
    let testParent: PFObject = (objects?.first)!
    let testRelation: PFRelation = testParent.relationForKey("children")
    testRelation.addObject(testChild);
    testParent.saveInBackground()
   })
}

但这不起作用:

let testChild2: PFObject = PFObject(className: "TestChild")
testChild2["name"] = "test"
testChild2.saveInBackgroundWithBlock { (success, error) -> Void in
  let testRelation: PFRelation = (PFUser.currentUser()?.relationForKey("testRelation"))!
  testRelation.addObject(testChild2)
  PFUser.currentUser()?.saveInBackground()
}

我检查/双重检查PFUser.currentUser()返回一个有效值,testRelation 存在一个正确的名称,类型等。TestChild 对象保存得很好,它PFUser.currentUser()?.saveInBackground()记录了错误

can't add a non-pointer to a relationship (Code: 111, Version: 1.10.0) ” 好像我试图为关系设置一个字符串或其他东西,尽管我显然不是。此外,我在用户(如字符串)上设置/保存非关系字段没有问题。我将 PFUser 和我试图添加到关系中的对象子类化,但试图缩小问题范围,我完全尝试了上面的代码并在代码中只使用 PFUser 和 PFObject。

我究竟做错了什么?请帮忙,我已经坚持了几个小时了,我只是无法理解发生了什么。

4

0 回答 0