我的代码类似于以下内容,我不理解的是为什么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
答案 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