How can you avoid a strong reference cycle in a closure?
Declare the closure variable as lazy. Reference: The Swift Programming Language: Language Guide: Automatic Reference Counting
lazy
Initialize the closure as read-only.
You can't, there will always be a danger of strong reference cycles inside a closure.
Use a capture list to set class instances of weak or unowned.
weak
unowned