我们可以在 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)

设置ARC有效或者无效

使用具有通用 setter 和 ARC 的 Objective-C 动态属性

是否允许使用 ARC 在 ObjC 中调用 [obj copy]?

ARC 下的 NSString 属性应该是强的还是复制的?