2013-03-20 30 views
0

可以說我有一個用強屬性定義的customView。ARC中的自我分配或下劃線分配?

@property (nonatomic, strong) UIView *customView; 

什麼是分配和初始化customView的最佳做法?

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

OR

_customView = [[UIView alloc] initWithFrame...

回答

2

這取決於你。如果你不想再次考慮它,你可以去「總是使用getters和setters」路線。或者,如果你不想浪費消息調用並用self.(像我)拋棄你的代碼,你可以去「使用實例變量,除非我需要需要來使用getters/setters」路由。

1

最好的辦法是

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

因爲如果我們使用這個變量與自爲customView getter和setter只會被激活。否則,不需要聲明該變量的屬性。

+1

+1。 KVC/KVO也通過'self'發揮作用 – 2013-03-20 07:26:27

2

方法::默認情況下,當您合成getter和setter訪問器方法時,假定屬性和ivar具有相同的名稱。

對於何時使用getter/setter方法以及何時直接訪問伊娃而言,這可能會讓您第一眼感到困惑。

替代方法是命名伊娃不同於財產。常用的方法是使用下劃線爲ivars名稱加上前綴。

你可以參考以下鏈接:Understanding Your (Objective-C) Self

感謝。