Reference
Symptom
error: Execution was interrupted, reason: EXC_BAD_ACCESS (code=1, address=0x18).
The process has been returned to the state before expression evaluation.
Investigation
In Xcode, Menu >> Product >> Scheme >> Edit Scheme
From Run >> Diagnostics >> Check Runtime Sanitization
Solution
In my case, accessed timer.userInfo which timer has been already invalidated. It was due to multiple async timer invocations. Inserted timer.isValid check just before accessing timer.userInfo.