實(shí)例變量和屬性-ObjectiveC

  1. @public 修飾的實(shí)例變量在類(lèi)外部有->訪問(wèn)
  2. 定義一個(gè)屬性會(huì)自動(dòng)有如下規(guī)則
    1.自動(dòng)生成訪問(wèn)方法
    2.自動(dòng)生成實(shí)例變量
    3.可以更簡(jiǎn)單地調(diào)用訪問(wèn)方法
  3. @synthessize后面只能跟屬性,不能跟實(shí)例變量,并為屬性生成getter,setter方法
//屬性的實(shí)現(xiàn)
@synthesize brand=(brand), price(=price), color; //屬性的實(shí)現(xiàn)可以省略
//自動(dòng)生成一個(gè)實(shí)例變量brand... 綁定到相應(yīng)的屬性brand...上
//2.setter和getter方法對(duì)實(shí)例變量brand進(jìn)行操作

如果不寫(xiě)屬性的實(shí)現(xiàn)

//如果不寫(xiě)屬性的實(shí)現(xiàn), 系統(tǒng)默認(rèn)補(bǔ)上的形式
@synthesize brand = _brand, price = _price, color = _color;
//1.自動(dòng)生成一個(gè)實(shí)例變量_brand
//2.setter和getter方法對(duì)實(shí)例變量_brand進(jìn)行操作
  1. @dynamic關(guān)鍵字修飾告訴編譯器屬性自動(dòng)生成的setter,getter方法無(wú)效,用戶自定義訪問(wèn)方法。
  2. 當(dāng)重寫(xiě)了屬性的setter,getter方法后,系統(tǒng)默認(rèn)補(bǔ)上的@synthesize age = _age就失效了
//當(dāng)同時(shí)重寫(xiě)setter和getter后, @synthesize age = _age; 就失效了
//解決方案:自己補(bǔ)上 @synthesize age = _age
@synthesize age = _age;
//當(dāng)屬性生成的setter方法不滿足需求時(shí), 可以重寫(xiě)setter方法
- (void)setAge:(NSInteger)age {
    if (age > _age) {
        _age = age;
    }
}
//當(dāng)屬性生成的getter方法不滿足需求時(shí), 可以重寫(xiě)getter方法
- (NSInteger)age {
    return _age - 2;
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容