findObjectsInBackgroundWithBlock没有进入“块”

时间:2015-11-01 09:57:31

标签: swift parse-platform

我的代码类似于以下内容,我不理解的是为什么Void in之后的代码永远不会运行?我确实试过调试,但看起来Block永远不会被执行。

顺便说一句,查询将返回空。

let query = PFQuery(className: "LastId")
query.whereKey("UserId", equalTo: opUserIdList[i])
query.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in
    if let objects = objects {
        for object in objects {
            object.setValue(self.opLastIdChangedToList[i], forKey: "lastId")
            object.saveInBackground()
        }
    } else {
        let newLine = PFObject(className: "LastId")
        newLine["lastId"] = self.opLastIdChangedToList[i]
        newLine["userIdself."] = self.opUserIdList[i]
        newLine.saveInBackground()
    }
})
//rest of the code

1 个答案:

答案 0 :(得分:1)

这是因为Void in之后的代码块是闭包。简单地说,这是一个指向包含稍后执行的代码(代码块)的函数的指针,在完成调用它的父函数之后。

尝试阅读文档以更好地了解如何使用它:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html#//apple_ref/doc/uid/TP40014097-CH11-ID94