小析OC類屬性

今天主要記錄下在看書過程中蓄氧,OC類中屬性使用遇到的思考疟位。因為本身就不是很復(fù)雜的內(nèi)容,所以只能算是小到不能再小的分析版扩。

static

首先要說的是static废离。這玩意在JAVA中我常用,不過在oc中總感覺怪怪的礁芦。
一般有兩種用法蜻韭,第一將static變量放到方法的內(nèi)部聲明。
這樣從這個方法第一次被調(diào)用開始宴偿,這個static變量就被創(chuàng)建湘捎。但是方法結(jié)束時并不立即銷毀這個變量诀豁。當這個方法下次被調(diào)用的時候窄刘,這個變量仍然存在,其中的值仍然保留著舷胜。這就是它作為static的意義娩践。不過活翩,雖然這個變量存在,但是由于是在方法體內(nèi)被創(chuàng)建翻伺,我們只能在方法體內(nèi)調(diào)用它材泄。換句話說,在方法生命周期結(jié)束時吨岭,銷毀的是這個變量的引用指針拉宗,而不是這個變量的儲存空間。
第二種使用方法就是在方法的外部去聲明一個static變量辣辫。通常放在implementation文件的開頭旦事。這樣所有方法都可以訪問它了。

需要注意的是急灭,static的內(nèi)容空間是固定的姐浮,動態(tài)創(chuàng)建和銷毀的只是它的引用指針。So葬馋,它的訪問區(qū)域只和創(chuàng)建它的指針的地方有關(guān)卖鲤。由此引申,若父類一個方法A()中定義了一個static的變量v畴嘶,子類繼承了這個方法A()蛋逾,那么子類和父類調(diào)用這個v的值,指向的都是同一個區(qū)域掠廓。訪問這個區(qū)域只和它的指針有關(guān)换怖,所以,只和A()方法的調(diào)用有關(guān)蟀瞧。和誰去調(diào)用無關(guān)沉颂。

@property 和 @synthesize

這兩哥們看似并沒啥特別的,只是編譯器幫助開發(fā)者快速生成類屬性的悦污。
但是在這背后的過程需要清晰铸屉。

@property

@property xxx做的事情是,給類A聲明一個類屬性_xxx(注意有下滑線)切端。且這個變量是A的私有變量彻坛,即外部包括子類都無法直接訪問_xxx。
當然踏枣,@property同時做了另一件事昌屉,創(chuàng)建了名為xxx的get和set方法。So茵瀑,外部和子類可以通過這兩個方法去操控_xxx

@synthesize

這哥們只做了一件事间驮,就是把A中由@property創(chuàng)建的_xxx變量,改名為xxx(去掉了下劃線)马昨。注意竞帽,這里修改的只是變量本身的名字扛施。(只改名,變量仍然為私有變量)
外部和子類訪問時屹篓,雖然調(diào)用的一直是xxx疙渣,但它們用的始終只是set和get方法,而不是直接訪問的這個變量堆巧。

"."運算符

OC中是可以使用點做運算的妄荔。但是和java等語音是不一樣的。OC中的點谍肤,只能算是一種便捷的寫法懦冰,編譯器最終還是轉(zhuǎn)換為了set和get方法來計算。

a.xxx = 1;
//等價于  
[a setXXX: 1];

a.xxx;
//等價于
[a xxx];

參考文獻:

《Objective-c 程序設(shè)計》
Joseph的深刻理解谣沸,我這里只是轉(zhuǎn)述

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末刷钢,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子乳附,更是在濱河造成了極大的恐慌内地,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赋除,死亡現(xiàn)場離奇詭異阱缓,居然都是意外死亡,警方通過查閱死者的電腦和手機举农,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門荆针,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人颁糟,你說我怎么就攤上這事航背。” “怎么了棱貌?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵玖媚,是天一觀的道長。 經(jīng)常有香客問我婚脱,道長今魔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任障贸,我火速辦了婚禮错森,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘篮洁。我一直安慰自己涩维,他們只是感情好,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布嘀粱。 她就那樣靜靜地躺著激挪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪锋叨。 梳的紋絲不亂的頭發(fā)上垄分,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天,我揣著相機與錄音娃磺,去河邊找鬼薄湿。 笑死,一個胖子當著我的面吹牛偷卧,可吹牛的內(nèi)容都是我干的豺瘤。 我是一名探鬼主播,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼听诸,長吁一口氣:“原來是場噩夢啊……” “哼坐求!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起晌梨,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤桥嗤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后仔蝌,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體泛领,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年敛惊,在試婚紗的時候發(fā)現(xiàn)自己被綠了渊鞋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡瞧挤,死狀恐怖锡宋,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情特恬,我是刑警寧澤员辩,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站鸵鸥,受9級特大地震影響奠滑,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜妒穴,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一宋税、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧讼油,春花似錦杰赛、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽根时。三九已至,卻和暖如春辰晕,著一層夾襖步出監(jiān)牢的瞬間蛤迎,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工含友, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留替裆,地道東北人。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓窘问,卻偏偏與公主長得像辆童,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子惠赫,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

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

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法把鉴,類相關(guān)的語法,內(nèi)部類的語法儿咱,繼承相關(guān)的語法纸镊,異常的語法,線程的語...
    子非魚_t_閱讀 31,587評論 18 399
  • 重點掌握 3 類對象和方法 對象就是一個物體 類的獨特存在就是一個實例概疆,對實例進行操作叫做方法逗威。方法可以應(yīng)用于類或...
    Coder大雄閱讀 1,254評論 0 2
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,125評論 29 470
  • 文 | 公子陸 授權(quán)發(fā)布 鏈接:27歲癌癥患者的自白:年輕人使套,別再揮霍你的健康罐呼!_麥子熟了_傳送門 1 我不是標題...
    黃抒洋閱讀 598評論 0 0
  • 來這里傾訴,因為沒有人認識我侦高,那些介于不說委屈說多了矯情的話嫉柴,在這里是不是顯得沒那么突兀了,我總結(jié)我這個人太被動奉呛,...
    劉大湯圓閱讀 210評論 0 0