84669 人學習
152542 人學習
20005 人學習
5487 人學習
7821 人學習
359900 人學習
3350 人學習
180660 人學習
48569 人學習
18603 人學習
40936 人學習
1549 人學習
1183 人學習
32909 人學習
我們都知道屬性的賦值是呼叫屬性的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只是程式設計的一種形式,不必太在意,完全可以按照自己套路來。