可以說我有一個用強屬性定義的customView。ARC中的自我分配或下劃線分配?
@property (nonatomic, strong) UIView *customView;
什麼是分配和初始化customView的最佳做法?
self.customView = [[UIView alloc] initWithFrame......
OR
_customView = [[UIView alloc] initWithFrame...
可以說我有一個用強屬性定義的customView。ARC中的自我分配或下劃線分配?
@property (nonatomic, strong) UIView *customView;
什麼是分配和初始化customView的最佳做法?
self.customView = [[UIView alloc] initWithFrame......
OR
_customView = [[UIView alloc] initWithFrame...
這取決於你。如果你不想再次考慮它,你可以去「總是使用getters和setters」路線。或者,如果你不想浪費消息調用並用self.
(像我)拋棄你的代碼,你可以去「使用實例變量,除非我需要需要來使用getters/setters」路由。
最好的辦法是
self.customView = [[UIView alloc] initWithFrame......
因爲如果我們使用這個變量與自爲customView getter和setter只會被激活。否則,不需要聲明該變量的屬性。
方法::默認情況下,當您合成getter和setter訪問器方法時,假定屬性和ivar具有相同的名稱。
對於何時使用getter/setter方法以及何時直接訪問伊娃而言,這可能會讓您第一眼感到困惑。
替代方法是命名伊娃不同於財產。常用的方法是使用下劃線爲ivars名稱加上前綴。
你可以參考以下鏈接:Understanding Your (Objective-C) Self
感謝。
+1。 KVC/KVO也通過'self'發揮作用 – 2013-03-20 07:26:27