我们可以在 ARC 中为弱属性使用 self.prefix 名称吗
Posted
技术标签:
【中文标题】我们可以在 ARC 中为弱属性使用 self.prefix 名称吗【英文标题】:Can we use self.prefix name for weak properties in ARC 【发布时间】:2012-11-27 13:48:51 【问题描述】:我正在从事一个基于 ARC 的项目。
我已经为 tableView 声明了一个属性,如下所示
@property (weak, nonatomic) IBOutlet UITableView *logTable.
在 ViewDidLoad 我执行以下操作
- (void)viewDidLoad
[super viewDidLoad];
[self.logTable.layer setCornerRadius:8.0f];//First Method
/////OR
[logTable.layer setCornerRadius:8.0f]; //Second Method
我的问题是,在我的情况下,哪种方法最好,即第一还是第二?
我知道,当我们不使用 self 时,我们是直接访问 ivar。但是它会做吗
Weak 属性的任何区别。
编辑:
假设我有一个如下的强属性
@property(strong,nonatomic)NSArray *dataArray;
据我所知,这会导致内存泄漏
self.dataArray =[[NSArray alloc]init];
那么在这种情况下应该采用哪种方法呢?
非常感谢任何帮助。
【问题讨论】:
关于您的编辑......如果您使用的是 ARC,则不会造成泄漏。 @PhillipMills:谢谢:) 【参考方案1】:我建议对属性使用self.
,除非有必要的理由不这样做,例如在自定义访问方法中。它会导致代码在您以后回来阅读时需要较少的分析,并且如果您决定某天更改属性属性,则它出现错误的可能性较小。
【讨论】:
以上是关于我们可以在 ARC 中为弱属性使用 self.prefix 名称吗的主要内容,如果未能解决你的问题,请参考以下文章
我们可以在 JavaScript 中为不可变对象添加属性吗?
ARC声明属性关键字详解(strong,weak,unsafe_unretained,copy)
使用具有通用 setter 和 ARC 的 Objective-C 动态属性