我有一个 objective c typedef,我想在我的 swift 闭包中使用:
typedef void (^SBJson4ValueBlock)(id item, BOOL* stop);
我的关闭没问题,除了我想设置“停止”的时候。
let parseJsonBlock: SBJson4ValueBlock = {
item, stop in
let continueFlag = doStuff(item)
stop = !continueFlag
}
Stop 在 objective-c 版本中显然是可变的,因为它是通过引用传递的……但我得到“无法分配给值:‘stop’是一个‘let’常量”。我怎样才能让 swift 理解这个参数应该是可变的?
最佳答案
通常你可以像这样使用memory
设置stop
:
if !continueFlag { stop.memory = true }
或者,你可以这样做:
stop.memory = ObjCBool(!continueFlag)
关于objective-c - 使用 Objective-c typedef 快速关闭的可变参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34460845/