使用Parse查询(Swift)填充数组

3

我试图从parse数据库中使用一个查询填充一个数组。当我尝试打印出数组的内容时,我得到了一个EXC_BAD_INSTRUCTION错误。看起来我没有正确地将新元素添加到数组中,我会感激任何提示。

func loadSampleTasks() {

    tasks = [Task]()
    let query = PFQuery(className: "Task")
    query.whereKey("TaskName", equalTo: "kenny")
    query.findObjectsInBackgroundWithBlock() {
        (objects: [PFObject]?, error: NSError?) -> Void in
        if error == nil && objects != nil {
            self.parseResults(objects!)
            print(self.tasks) // this prints out Kenny object as expected
        }
    }
    print(tasks) // prints an empty array
}

func parseResults(objects: Array<PFObject>){

    for object in objects { //looping through returned data
        print("no error in Parse lookup")
        let parseResult1 = Task(name: object["TaskName"] as! String)
        parseResult1?.completed = object["Completed"] as! Bool
        print("Parse result in object loop: \(parseResult1!.name)")
        tasks.append(parseResult1!)
    }

}

任何帮助都非常感激!

这是因为您在闭包中获取解析结果,这意味着它可能会在函数本身已经返回后执行。 - Fred Faust
我该怎么做才能修复这个问题? - Kenny Tao
2个回答

1
根据thefredelement的说法,“这是因为你在闭包中获取解析结果,这意味着它可能在函数本身已经返回后执行。” 然而,在此之前,它将无法正常工作,并且会返回该错误。

我不太明白为什么会出现错误。看起来我在闭包之后调用了print,所以应该没问题吧? - Kenny Tao
哈,我来晚了!我休息了一下午,然后试图寻找答案,发现在调用某些函数外部的东西时,我在虚假脚本中也遇到了同样的错误。但看起来你已经解决了这个问题,所以我来得有点晚了。很高兴你解决了它! :) - Collin O.

0

我搞定了。我必须在闭包内使用tableView.reloadData()。非常感谢您的帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接