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