Swift回调语法问题

时间:2015-04-27 20:29:41

标签: ios swift

我是 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作为向导,我错过了什么?

3 个答案:

答案 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
}