繁体   English   中英

UITableView中的强大参考周期

[英]Strong reference cycle in UITableView

假设我正在使用情节提要,并且使用了TableViewController。用于编写与该TableViewController相关的代码的类是“ myTableViewController”。现在发生的是,在这种情况下,如果需要,UITableView Controller的委托会自动设置若要以编程方式执行相同的操作,我将必须采用协议并将当前类对象设置为UITableViewController的委托。

现在,我正在阅读有关强引用周期的信息,但我无法理解委托和TableView如何相互引用。

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

被授予委托使用的对象通常将保持对委托的弱引用。 否则(或使用旧代码),您可能会看到以下情况:如果正在释放委托对象,则警告您将委托重置为nil。

这会破坏周期。

以下面的代码为例:

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

现在,如果我正确理解,将属性更改为Strong应该不会在这里引起任何问题,因为UITableView委托属性的引用类型为(assign,nonatomic)。因此它不会在此处创建任何强引用周期。我正确吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM