在ARC中分配自我或下划线?

时间:2013-03-20 07:21:16

标签: iphone objective-c memory-management

假设我有一个定义了强大属性的自定义视图。

@property (nonatomic, strong) UIView *customView;

分配和初始化自定义视图的最佳做法是什么?

self.customView = [[UIView alloc] initWithFrame......

OR

_customView = [[UIView alloc] initWithFrame...

3 个答案:

答案 0 :(得分:2)

方法::默认情况下,在合成getter和setter访问器方法时,假定属性和ivar具有相同的名称。

这可能会让您在使用getter / setter方法时以及何时直接访问ivar时会感到困惑。

替代方案是将ivar命名为与财产不同。一种常见的方法是使用下划线作为ivars名称的前缀。

您可以参考此链接:Understanding Your (Objective-C) Self

感谢。

答案 1 :(得分:2)

这取决于你。如果你想再也不去想它,你可以去“永远使用吸气剂和制定者”的路线。或者如果您不想浪费消息调用并且使用self.(像我一样)乱丢您的代码,您可以使用“使用实例变量,除非我需要使用getter / setter”路由。

答案 2 :(得分:1)

最佳方法是

self.customView = [[UIView alloc] initWithFrame......

因为只有在我们使用self变量时才会激活customView的getter和setter。否则,不需要声明该变量的属性。