Swift 6.4: Warning for Weak Captures Within Nested Closures

John Sundell:

New in Swift 6.4 is a warning which is emitted when a nested closure performs a weak capture while the parent closure implicitly captures that object as a strong reference.At first glance, that new diagnostic could be a bit puzzling, since it might seem unnecessary to have to specify such a weak capture twice (or, alternatively, move it to the parent closure’s capture list), but it turns out that it’s an incredibly useful new warning that can help us avoid a quite common kind of memory management bug. Finally, in situations where capturing self strongly doesn’t actually lead to a retain cycle, we can silence the new warning for nested weak captures by explicitly adding self to the outer closure’s capture list, such as when creating a Task within the following example

Previously:

添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论