Hi,
The following code crashes:
class Demo {
var value = 0
lazy var increment: (Int) -> Void = { [unowned self] by in
self.value += by
print(self.value)
}
}
Demo().increment(3)
error: Playground execution aborted: error: Execution was interrupted, reason:
EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0).
However if I call it this way:
do {
let demo = Demo()
demo.increment(3)
}
All is well. This breaks my mental model of lifetime guaranteed to be around
until the method call completes.
Is it me that is wrong or the playground. Is the second way working just by
luck?
_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users