iOS:针对nib的IBOutlets的ARC强或弱引用(用于自定义UITableviewCell)

时间:2012-02-26 23:58:03

标签: ios automatic-ref-counting

很抱歉,如果已经提出这个问题,但我已经搜索过,并且没有找到我现在发现自己的具体案例的答案。

我是UITableViewController的子类。我没有自定义笔尖。我还有一个自定义tableview cell,我正在实现 拥有自己的自定义笔尖。当我为这个单元格创建插座时,我应该创建一个弱引用吗?因为它最终成为TableViewController的子视图我会认为是,但Apple文档也注意到笔尖中的顶级对象应该很强,所以我很困惑。任何帮助都会得到帮助!

4 个答案:

答案 0 :(得分:1)

使用弱引用。这是因为当您的视图被卸载时,如果它很弱,链接将自动设置为nil。

答案 1 :(得分:0)

如果你将单元格放在tableview之外xib(我很确定你会这样),那么它需要是一个强引用,否则单元格将是在你可以用来构建表格之前发布。

如果你在viewDidLoad中使用它,它仍然存在,但最好不要依赖于以这种方式行事的呼叫周期。

答案 2 :(得分:0)

  

“Apple文档还注意到笔尖中的顶级对象应该很强,所以我很困惑”

无论你使用什么UIView子类,都是如此。如果你有一个带有UITableViewCell和UIView IBOutlet的笔尖,它们都是顶层对象,那么UIView需要很强大。如果UIView IBOutlet是笔尖中UITableViewCell的子视图,它应该很弱。

答案 3 :(得分:0)

您必须使用弱所有权。因为您的表格视图单元格强烈引用它的父视图,并且您的父视图强烈引用它的子视图

像这样:

@property (weak, nonatomic) IBOutlet MyView *viewContainerSubview;
@property (strong, nonatomic) IBOutlet UIView *topLevelView;