【发布时间】:2016-02-03 12:02:58
【问题描述】:
正如我在另一个问题中看到的,经验法则是:
当父对象引用子对象时,您应该使用强引用。当子对象具有对其父对象的引用时,您应该使用弱引用或 unsafe_unretained 引用(如果前者不可用)。一个典型的场景是当您与代表打交道时。例如,UITableViewDelegate 不保留包含表格视图的控制器类。
好吧,在这种情况下,我有一个带有表视图 IBOutlet 的视图控制器。此表视图还使用视图控制器作为委托和数据源。根据上面的规则,视图控制器充当父级,所以我应该对表视图有一个强引用——表视图应该对视图控制器有一个弱引用。
我不确定如何定义后一个弱引用 - 我正在设置
tableView.delegate = self;
tableView.dataSource = self;
我应该如何让自己变得虚弱?或者这不是正确的做法?
【问题讨论】:
-
只需将插座从情节提要中的 TableView 拖到 .h 文件中。 Xcode 将把它变成一个弱 IBOutlet
标签: ios objective-c memory