iOS之成員變量厚柳、實(shí)例變量氧枣、屬性

作為iOS開(kāi)發(fā),會(huì)經(jīng)常聽(tīng)到成員變量草娜、實(shí)例變量和屬性挑胸;那他們有什么區(qū)別嗎?

實(shí)例變量

實(shí)例變量:class類(lèi)進(jìn)行實(shí)例化出來(lái)的對(duì)象為實(shí)例對(duì)象宰闰;比如:

Person *p = [Personnew];

成員變量

成員變量:在{ }中所聲明的變量都是成員變量(實(shí)例變量是一種特殊的成員變量)茬贵。其中的hell、btn也是實(shí)例對(duì)象移袍,id是一種特殊的class解藻,是OC特有的對(duì)象。成員變量是私有變量葡盗,外部不會(huì)獲取到螟左。

@interfacePerson:NSObject{@publicNSString*myName;//成員idhell;// id - > classUIButton*btn;intage;}

屬性變量

屬性變量:屬性是與其他對(duì)象交互的變量啡浊,會(huì)生成默認(rèn)的setter和getter方法。蘋(píng)果早期的編譯器是GCC胶背,后來(lái)發(fā)展到LLVM巷嚣,LLVM在沒(méi)有匹配實(shí)例變量的額屬性時(shí)會(huì)自動(dòng)創(chuàng)建一個(gè)帶下劃線(xiàn)的成員變量。注意:分類(lèi)中添加的屬性是不會(huì)自動(dòng)生成setter和getter方法的钳吟,必須要手動(dòng)添加廷粒。如果已經(jīng)手動(dòng)實(shí)現(xiàn)了get和set方法的話(huà)Xcode不會(huì)再自動(dòng)生成帶有下劃線(xiàn)的私有成員變量了,因?yàn)閤Code自動(dòng)生成成員變量的目的就是為了根據(jù)成員變量而生成get/set方法的红且,但是如果get和set方法缺一個(gè)的話(huà)都會(huì)生成帶下劃線(xiàn)的變量坝茎。

給分類(lèi)添加屬性

.h文件

#import<Foundation/Foundation.h>@interfaceNSObject(Person)@property(nonatomic,copy)NSString*name;@end

.m文件

#import"NSObject+Person.h"#import<objc/runtime.h>/*或者 #import<objc/message.h>*/staticNSString*nameKey =@"nameKey";// name的key@interfaceNSObject()@end@implementationNSObject(Person)/**

setter方法

*/- (void)setName:(NSString*)name {? ? objc_setAssociatedObject(self, &nameKey, name, OBJC_ASSOCIATION_COPY);}/**

getter方法

*/- (NSString*)name {returnobjc_getAssociatedObject(self, &nameKey);}@end

使用:

- (void)viewDidLoad {NSObject*objc = [[NSObjectalloc] init];? ? objc.name =@"Vincent";NSLog(@"%@", objc.name);}

@property和@synthesize

@synthesize讓編譯器自動(dòng)生成setter和getter,可以制定屬性對(duì)應(yīng)的成員變量暇番。

在Xcode4.4版本之前@property和@synthesize的功能是獨(dú)立分工的:

@property的作用是:自動(dòng)的生成成員變量set/get方法的聲明如代碼:

@propertyintage;// 它的作用和下面兩行代碼的作用一致- (void)setAge:(int)age;? - (int)age;

注意:屬性名稱(chēng)不要加前綴下劃線(xiàn)嗤放,否則生成的get/set方法中也會(huì)有下劃線(xiàn)_

@synthesize的作用是實(shí)現(xiàn)@property定義的方法代碼如:

@synthesizeage

將@property中定義的屬性自動(dòng)生成get/set的實(shí)現(xiàn)方法而且默認(rèn)訪(fǎng)問(wèn)成員變量age,如果指定訪(fǎng)問(wèn)成員變量_age的話(huà)代碼如:

@synthesizeage = _age壁酬;

把@property中聲明的age成員變量生成get/set實(shí)現(xiàn)方法次酌,并且在實(shí)現(xiàn)方法內(nèi)部訪(fǎng)問(wèn)_age這個(gè)成員變量,也就意味著給成員_age賦值舆乔。

注意:訪(fǎng)問(wèn)成員變量 _age 如果在.h文件中沒(méi)有定義_age成員變量的話(huà)和措,就會(huì)在.m文件中自動(dòng)生成@private類(lèi)型的成員變量_age

轉(zhuǎn)載文章地址:http://www.reibang.com/p/1027c9d8359e

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市蜕煌,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌诬留,老刑警劉巖斜纪,帶你破解...
    沈念sama閱讀 211,884評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異文兑,居然都是意外死亡盒刚,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,347評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)绿贞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)因块,“玉大人,你說(shuō)我怎么就攤上這事籍铁∥猩希” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,435評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵拒名,是天一觀的道長(zhǎng)吩愧。 經(jīng)常有香客問(wèn)我,道長(zhǎng)增显,這世上最難降的妖魔是什么雁佳? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,509評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上糖权,老公的妹妹穿的比我還像新娘堵腹。我一直安慰自己,他們只是感情好星澳,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,611評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布疚顷。 她就那樣靜靜地躺著,像睡著了一般募判。 火紅的嫁衣襯著肌膚如雪荡含。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 49,837評(píng)論 1 290
  • 那天届垫,我揣著相機(jī)與錄音释液,去河邊找鬼。 笑死装处,一個(gè)胖子當(dāng)著我的面吹牛误债,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播妄迁,決...
    沈念sama閱讀 38,987評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼寝蹈,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了登淘?” 一聲冷哼從身側(cè)響起箫老,我...
    開(kāi)封第一講書(shū)人閱讀 37,730評(píng)論 0 267
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎黔州,沒(méi)想到半個(gè)月后耍鬓,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,194評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡流妻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,525評(píng)論 2 327
  • 正文 我和宋清朗相戀三年牲蜀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片绅这。...
    茶點(diǎn)故事閱讀 38,664評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡涣达,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出度苔,到底是詐尸還是另有隱情,我是刑警寧澤棕叫,帶...
    沈念sama閱讀 34,334評(píng)論 4 330
  • 正文 年R本政府宣布林螃,位于F島的核電站,受9級(jí)特大地震影響俺泣,放射性物質(zhì)發(fā)生泄漏疗认。R本人自食惡果不足惜完残,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,944評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望横漏。 院中可真熱鬧谨设,春花似錦、人聲如沸缎浇。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,764評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)素跺。三九已至二蓝,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間指厌,已是汗流浹背刊愚。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,997評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留踩验,地道東北人鸥诽。 一個(gè)月前我還...
    沈念sama閱讀 46,389評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像箕憾,于是被迫代替她去往敵國(guó)和親牡借。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,554評(píng)論 2 349

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