我需要从数据库中获取一些'Kurse'(PFObjects),然后我需要获取另一个PFObject的名称,它是'kurs'的指针,但是如果我尝试这样做,什么也不会发生。没有错误,程序没有中断或类似的东西,但是“test2”没有打印出来!

let user = PFUser.currentUser()

    let query = PFQuery(className: "Kurs")
    query.whereKey("stufe", equalTo: user!["stufe"])

    query.findObjectsInBackgroundWithBlock { (objects: [PFObject]?, error: NSError?) -> Void in
        if error != nil {
            print(error)
        }
        else if let kurse = objects{
            print("kurse:", kurse)
            for kurs in kurse{
                print("kurs:", kurs)
                var gibtEsSchon = false

                if gibtEsSchon == false{
                    print("test1")


                    let fach = kurs["fach"] as! PFObject
                    print("fach", fach)
                    let name = fach["name"] as! String
                    print("test2")
                    self.daten.append(Fach(dieKurse: [kurs], name: name))
                    print("daten 3", self.daten)
                }

            }

        }

所以这条线
 let name = fach["name"] as! String

不被调用。
但我想我知道原因:如果我打印(“fach”,fach),结果就没有它应该有的属性“name”。我认为PFObject没有完全加载:
我得到的是:
法赫{
}
我想要的是:
法赫{
name=德语;
}

最佳答案

query.includeKey("fach")上面加上query.findObjectsInBackgroundWithBlock可以解决这个问题。
PFQuery class referenceincludeKey
使查询包含在提供的键上存储了引用的PFObjects。

关于ios - 解析:PFObject加载时不带属性,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33334769/

10-13 03:44