UITableView中强大的参考周期

时间:2015-07-31 12:11:20

标签: ios

假设我正在使用storyboard并且我使用了一个TableViewController。我用来编写与该TableViewController相关的代码的类是“myTableViewController”。现在发生的是UITableView Controller的委托在这种情况下自动设置并且如果我想以编程方式做同样的事情,我将不得不采纳 协议并将当前类对象设置为UITableViewController的委托。

现在我正在阅读有关强引用循环的内容,而我无法理解委托和TableView如何相互引用。

如果我取一个类“Person”并取两个成员NSString属性“firstName”和“lastName”,我可以说类对象将对两个NSString对象都有一个强引用。但是我没理解这个在TableView的情况下。

2 个答案:

答案 0 :(得分:0)

给定委托使用的对象通常会保留对委托的弱引用。否则(或使用较旧的代码),您可能会看到在被解除分配委托对象时警告您将委托重置为nil的情况。

这会打破周期。

答案 1 :(得分:-1)

使用此代码,例如:

@interface myClass<protocols>
@property (weak,nonatomic) IBOutlet UITableView *myTableView;
@end

现在,如果我理解正确,将属性更改为strong不会导致任何问题,因为UITableView委托属性具有类型的引用(assign,nonatomic)。因此,它不会在此处创建任何强引用循环。我是对的吗?

相关问题