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
![](https://aiharasoft.com/wordpress/wp-content/uploads/2020/11/スクリーンショット-2020-11-04-18.34.58.png)
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.