我們都知道屬性的賦值是呼叫屬性的setter方法, 可是成員變數是如何賦值的呢? 他的內部實作原理是什麼?
走同样的路,发现不同的人生
雷雷
我想應該是想問ivar和property的差別吧。 property = ivar+getter+setter
舉個例子property (assign) int a 預設會產生 一個_a的成員變量,我們叫做ivar同時會產生setter方法,長這樣:
-(void)setA:(int)a { _a = a; }
同時也會產生一個getter方法,長這樣:
-(int)a { return _a; }
同時會給_a一些增益buff,例如strong強引用,weak弱引用來控制這個變數生命週期。
所以property只是程式設計的一種形式,不必太在意,完全可以按照自己套路來。
雷雷
我想應該是想問ivar和property的差別吧。
property = ivar+getter+setter
舉個例子
property (assign) int a 預設會產生 一個_a的成員變量,我們叫做ivar
同時會產生setter方法,長這樣:
同時也會產生一個getter方法,長這樣:
同時會給_a一些增益buff,例如strong強引用,weak弱引用來控制這個變數生命週期。
所以property只是程式設計的一種形式,不必太在意,完全可以按照自己套路來。