我是 Swift 的新手,我正在尝试声明一个接收回调的函数。
func getAll(callback: (students: [Student]!) -> Void) {
// http request to get a list of students and parse it
callback(students: students)
}
在调用函数时,我正在做:
obj.getAll() {
(students: [Student]!) in
// Callback code
}
但它不会构建,它说:Cannot invoke getAll with an argument list of type '(([Student]!) -> _)'
我关注this thread作为向导,我错过了什么?
答案 0 :(得分:1)
struct Student {
}
func getAll(callback: (students: [Student]!) -> Void) {
// http request to get a list of students and parse it
let students = [Student]()
callback(students: students)
}
getAll { (students) -> Void in
println(students)
}
答案 1 :(得分:0)
你不是发送学生参数,而是接收参数,这就是你实现它的原因:
:checked
如果您不确定闭包,请始终使用自动完成功能,您不必担心语法。希望这会有所帮助。
答案 2 :(得分:0)
在通话中删除类型声明
obj.getAll() {
students in
// Callback code
}