iOS 對屬性變量setter和getter方法的理解

關(guān)于成員變量桂肌、實(shí)例變量、屬性變量

成員變量

@implementation ViewController {
    UILabel *textLabel;
    int count;
}

成員變量是用于類的內(nèi)部永淌,無需與外界接觸的變量崎场。成員變量默認(rèn)是protected,因?yàn)槌蓡T變量不會生成set遂蛀、get方法谭跨,所以無法和外界接觸,從上面代碼可以看出來李滴,成員變量是定義在{ }中的變量螃宙,如果變量的數(shù)據(jù)類型是一個(gè)類,就如:UILabel *textLabel;那么稱這個(gè)變量為實(shí)例變量所坯。所以實(shí)例變量也是成員變量的一種特殊情況谆扎,所以實(shí)例變量也是類內(nèi)部使用的,無需與外部接觸的變量芹助,這個(gè)也就是所謂的類私有變量堂湖。

實(shí)例變量

UILabel *textLabel;

剛在上面說了,實(shí)例變量是成員變量的一種特殊情況状土,實(shí)例變量本質(zhì)上就是成員變量无蜂,只是實(shí)例是針對的類而言的。

屬性變量

@interface ViewController ()
 
@property (nonatomic, strong) UIButton *nextBtn;
 
@end

屬性變量是用于與其他對象交互的變量蒙谓。

屬性變量

@interface MyModel : NSObject
 
@property (nonatomic, copy) NSString *age;
 
@end

現(xiàn)在我們聲明屬性用的最多的方式就是這樣子酱讶。編譯器會自動生成一個(gè)以下劃線開頭的實(shí)例變量_age,不需要自己手動再去寫實(shí)例變量彼乌。而且也不需要在.m文件中寫@synthesize age泻肯;當(dāng)然這個(gè)方式也會自動為你生成setter,getter方法慰照。

@synthesize 聲明的屬性=變量灶挟。意思是,將屬性的setter,getter方法毒租,作用于這個(gè)變量稚铣。@synthesize還有一個(gè)作用,就是可以指定與屬性對應(yīng)的實(shí)例變量墅垮,例如我可以這樣寫@synthesize age = myAge;惕医,那這樣子的話我們?nèi)フ{(diào)用的時(shí)候self.age其實(shí)是操作的實(shí)例變量myAge,而不是_age了。

屬性的setter和getter方法

//setter方法
- (void)setAge:(NSString *)age {
    _age = age;
}
//getter方法
- (NSString *)age {
    return _age;
}

上面代碼是屬性的setter和getter方法算色。
setter是給外部提供一個(gè)修改內(nèi)部屬性值的接口抬伺,通過給對象指針發(fā)送該消息(調(diào)用setter方法)可以做到修改內(nèi)部屬性值。
getter 方法是外界提供一個(gè)查看內(nèi)部變量的的接口 灾梦。

注意
1 屬性的setter方法和getter方法是不能同時(shí)進(jìn)行重寫的,這是因?yàn)椋坏┠阃瑫r(shí)重寫了這兩個(gè)方法肉康,那么系統(tǒng)就不會幫你生成這個(gè)成員變量了,所以會報(bào)錯(cuò)寞宫,如果真的就想非要重寫這個(gè)屬性的setter和getter方法的話,就要手動生成成員變量拉鹃,然后就可以重寫了辈赋。或者是用

@synthesize:
@synthesize age = myAge;
 
- (void)setAge:(NSString *)age {
    myAge = age;
}
 
- (NSString *)age {
    return myAge;
}

2 在getter方法中最后返回return _age;而不是return self.age膏燕, 這是因?yàn)辄c(diǎn)語法實(shí)際上是對setter和getter方法的調(diào)用钥屈,如果在getter方法中調(diào)用return self.age的話,就會循環(huán)調(diào)用煌寇。

3 在重寫屬性的setter方法的時(shí)候我們一般都是這樣寫:

- (void)setInfoArr:(NSArray *)infoArr {
    _infoArr = infoArr;
    _infoArr = @[@"我是數(shù)組"];
}

我們需要在setter方法中加上這句_infoArr = infoArr;焕蹄,我們在重寫setter方法的時(shí)候?qū)⑿轮礽nfoArr 賦值給屬性變量_infoArr 以便我們在外面調(diào)用逾雄。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末阀溶,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子鸦泳,更是在濱河造成了極大的恐慌银锻,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,639評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件做鹰,死亡現(xiàn)場離奇詭異击纬,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)钾麸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評論 3 385
  • 文/潘曉璐 我一進(jìn)店門更振,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人饭尝,你說我怎么就攤上這事肯腕。” “怎么了钥平?”我有些...
    開封第一講書人閱讀 157,221評論 0 348
  • 文/不壞的土叔 我叫張陵实撒,是天一觀的道長。 經(jīng)常有香客問我涉瘾,道長知态,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,474評論 1 283
  • 正文 為了忘掉前任立叛,我火速辦了婚禮负敏,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘秘蛇。我一直安慰自己原在,他們只是感情好友扰,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著庶柿,像睡著了一般村怪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上浮庐,一...
    開封第一講書人閱讀 49,816評論 1 290
  • 那天甚负,我揣著相機(jī)與錄音,去河邊找鬼审残。 笑死梭域,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的搅轿。 我是一名探鬼主播病涨,決...
    沈念sama閱讀 38,957評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼璧坟!你這毒婦竟也來了既穆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,718評論 0 266
  • 序言:老撾萬榮一對情侶失蹤雀鹃,失蹤者是張志新(化名)和其女友劉穎幻工,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體黎茎,經(jīng)...
    沈念sama閱讀 44,176評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡囊颅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了傅瞻。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片踢代。...
    茶點(diǎn)故事閱讀 38,646評論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖嗅骄,靈堂內(nèi)的尸體忽然破棺而出胳挎,到底是詐尸還是另有隱情,我是刑警寧澤掸读,帶...
    沈念sama閱讀 34,322評論 4 330
  • 正文 年R本政府宣布串远,位于F島的核電站,受9級特大地震影響儿惫,放射性物質(zhì)發(fā)生泄漏澡罚。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評論 3 313
  • 文/蒙蒙 一肾请、第九天 我趴在偏房一處隱蔽的房頂上張望留搔。 院中可真熱鬧,春花似錦铛铁、人聲如沸隔显。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽括眠。三九已至彪标,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間掷豺,已是汗流浹背捞烟。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留当船,地道東北人题画。 一個(gè)月前我還...
    沈念sama閱讀 46,358評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像德频,于是被迫代替她去往敵國和親苍息。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評論 2 348

推薦閱讀更多精彩內(nèi)容