[swift-users] unowned self in closure in a playground
Marco S Hyman
marc at snafu.org
Tue Feb 21 13:18:03 CST 2017
> 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).
value is not a static/class variable. Without an instance of Demo it does not exist. This seems to work.
class Demo {
static var value = 0
lazy var increment: (Int) -> Void = { [unowned self] by in
value += by
print(value)
}
}
More information about the swift-users
mailing list