不知道如何正确表达问题,所以这里是代码:
class Foo {
func foo2(nextCall: ()->()) {
}
func foo(nextCall: ()->()) {
func f1() {
foo2(f1)
}
}
}
浓缩了,但不确定是不是同类型的问题:
class Foo {
func foo(nextCall: ()->()) {
func f1() {
foo(f1)
}
}
}
错误信息是:无法使用来自另一个本地函数的捕获来引用本地函数。
知道如何解决这个问题吗?提供的函数用作回调函数,不知何故我想知道为什么不能使用该函数。
最佳答案
此代码成功编译:
class Foo {
func foo(nextCall: ()->()) {
var f1:(()->())!
f1 = {
self.foo(f1)
}
}
}
Foo().foo({})
当然这段代码什么都不做。但是,如果您按需要实现,它将按预期工作。
关于callback - 不可能对回调函数进行 self 引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25808885/