不知道如何正确表达问题,因此这里是代码:
class Foo {
func foo2(nextCall: ()->()) {
}
func foo(nextCall: ()->()) {
func f1() {
foo2(f1)
}
}
}
简明,但不确定是否是同一类型的问题:
class Foo {
func foo(nextCall: ()->()) {
func f1() {
foo(f1)
}
}
}
错误消息是:无法使用其他本地函数的捕获引用本地函数。
知道如何解决这个问题吗?提供的函数用作回调函数,不知怎的,我想知道为什么函数不能使用。
答案 0 :(得分:0)
此代码成功编译:
class Foo {
func foo(nextCall: ()->()) {
var f1:(()->())!
f1 = {
self.foo(f1)
}
}
}
Foo().foo({})
当然这段代码什么也没做。但是,如果您按照自己的意愿实施,它将按预期工作。