swift - 带有 unowned 关键字的闭包保留了我的对象

标签 swift closures

基本上我有以下

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
   var myClosure = { [unowned tableView] in 
     ...
   }
}

我最终希望在闭包中访问我的 tableView 而无需创建保留周期。

写到这里,方法参数给出的 tableView 被我的闭包保留。

我可能在这里遗漏了一些关于闭包所有权的内容,但是什么呢?

最佳答案

我发现我的代码实际上有一个嵌套闭包。我添加捕获列表的闭包位于第二个闭包中。

将其移至我的第一个闭包解决了我的问题。

关于swift - 带有 unowned 关键字的闭包保留了我的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36586633/

相关文章:

快速编程语法问题

python - Python将函数闭包的名称绑定(bind)存放在哪里?

ios - 如何在 Swift 的闭包中调用 super

Javascript 可链接闭包

swift - 结构是文件私有(private)的,不能从 swift 4.1 中的默认参数值引用

ios - 如何在 Sprite Kit 的 Action 中运行函数?

ios - 如何使用 UIPickerView 的结果分配字符串,使用字符串作为 WebView url

ios - 如何关闭导航栏中文本字段调用的键盘?

使用闭包时 Swift 惰性存储属性与常规存储属性

JavaScript + Firebug : "cannot access optimized closure" What does it mean?