OC中property修飾的類型

1.線程安全的

? atomic、nonatomic

2.訪問權(quán)限的

? readonly潜支、readwrite

3.內(nèi)存管理(ARC)

? assign甸赃、strong柿汛、weak冗酿、copy

4.內(nèi)存管理(MRC)

? assign、retain络断、release

5.指定方法名稱 (如何定義set get 方法)

? setter =?

? getter =

由于將來我們經(jīng)常需要定義一些方法來操作成員變量,而每個(gè)方法都必須有一個(gè)有意義的名稱,而想名字非常難,所以就有了getter-setter方法 getter-setter方法格式和寫法都是固定的,所以只要有g(shù)etter-setter方法我們就不用煞費(fèi)心思的去想方法名稱了,解決我們起名字難問題 并且getter-setter方法還是程序員之間的一種規(guī)范,以后別人只要想給屬性賦值立刻就會(huì)想到getter-setter方法,這樣降低了程序員之間的溝通成本

setter方法: 作用: 設(shè)置成員變量的值,給成員變量賦值 格式:

1. setter方法一定是對象方法

2. 一定沒有返回值

3. 一定以set開頭, 并且set后面跟上需要設(shè)置的成員變量的名稱去掉下劃線, 并且首字母大寫

4. 一定有參數(shù), 參數(shù)類型一定和需要設(shè)置的成員變量的類型一致, 并且參數(shù)名稱就是成員變量的名稱去掉下劃線

5.setter方法的實(shí)現(xiàn)中,一定要給帶下劃線的成員變量賦值

getter方法: 作用: 獲取成員變量的值 格式:

1. getter方法一定是對象方法

2.一定有返回值, 而且返回值一定和獲取的成員變量的類型一致

3.方法名稱就是獲取的成員變量的名稱去掉下劃線

4. 一定沒有參數(shù)

5.getter方法的實(shí)現(xiàn)中,一定要返回帶下劃線成員變量的值

詳解

一裁替、線程安全的

多線程存在安全隱患

1.一塊資源可能會(huì)被多個(gè)線程共享,也就是多個(gè)線程可能同時(shí)訪問同一資源貌笨,如:

多線程訪問同一個(gè)對象弱判,同一個(gè)變量,同一個(gè)文件

2.當(dāng)多線程訪問同一塊資源的時(shí)候锥惋,很容易引發(fā)數(shù)據(jù)錯(cuò)亂和數(shù)據(jù)安全問題

原子性和非原子性

atomic -----原子性---- 默認(rèn)

nonatomic ----非原子性

原子性 :默認(rèn)

這個(gè)屬性是為了保證程序在多線程下昌腰,編譯器會(huì)自動(dòng)生成自旋鎖代碼,避免該變量的讀寫不同步問題膀跌,提供多線程安全遭商,即多線程中只能有一個(gè)線程對它進(jìn)行訪問。

注意:

1.atomic原子性指的是一個(gè)操作不可以被CPU中途暫停捅伤,然后再調(diào)度劫流。即不能被中斷,要么就執(zhí)行完丛忆,要么就不執(zhí)行

2.atomic是自旋鎖祠汇,當(dāng)上一線程沒有執(zhí)行完畢的時(shí)候(被鎖住)熄诡,下一個(gè)線程會(huì)一直等待(不會(huì)進(jìn)入睡眠狀態(tài))可很,當(dāng)上衣線程任務(wù)執(zhí)行完畢,下一線程立即執(zhí)行凰浮。它區(qū)別于互斥鎖我抠,互斥鎖在等待的時(shí)候姜骡,會(huì)進(jìn)入睡眠狀態(tài),當(dāng)被上一線程執(zhí)行完畢后屿良,會(huì)被喚醒圈澈,然后再執(zhí)行。

3.atomic只給setter方法上鎖尘惧,getter不會(huì)加鎖

4.atomic需要消耗大量的資源康栈,執(zhí)行效率低

非原子性

nonatomic:非原子性,非線程安全喷橙,多個(gè)線程可以同時(shí)對其進(jìn)行訪問啥么,使用該屬性編譯器會(huì)少生成加鎖代碼,提高性能和效率贰逾,使用頻率高悬荣,一般都是放棄安全,提高性能

二疙剑、訪問權(quán)限

readwrite? 默認(rèn)? 擁有g(shù)etter/setter方法? 可讀可寫

readonly? 只讀屬性氯迂, 只會(huì)生成getter方法,不會(huì)生成setter方法

三言缤、內(nèi)存管理(ARC)

1.assign 默認(rèn)

? 適用于基本數(shù)據(jù)類型:NSInteger嚼蚀、CGFloat和C數(shù)據(jù)類型 int、float等,另外還有id類型

2.strong 對應(yīng)MRC中的retain

強(qiáng)引用管挟,只有OC對象才能夠使用該屬性轿曙,它使對象的引用計(jì)數(shù)加1

3.weak

弱引用,只是單純引用某個(gè)對象僻孝,但是并未擁有該對象

即一個(gè)對象被持有無數(shù)個(gè)弱引用导帝,只要沒有強(qiáng)引用指向它,那么它就會(huì)被清除釋放

4.copy

為減少對上下文的依賴而引入的機(jī)制穿铆,可以理解為內(nèi)容的拷貝

內(nèi)容被拷貝后您单,內(nèi)存中會(huì)有兩個(gè)存儲(chǔ)空間存儲(chǔ)相同的內(nèi)容。指針不是同一個(gè)地址

block經(jīng)常用copy

UI控件使用weak的原因:

UI控件之所以可以使用弱指針悴务,是因?yàn)榭刂破饔袕?qiáng)指針指向UIView?

UIView 有強(qiáng)指針指向Subviews數(shù)組睹限,數(shù)組中由強(qiáng)指針指向控件

代理必須是weak,因?yàn)榇硪话愣际侵赶蚩刂破餮堕埽瑫?huì)造成循環(huán)引用羡疗,無法釋放,造成內(nèi)存泄露

關(guān)于weak 與assign

在ARC别洪,出現(xiàn)循環(huán)引用的時(shí)候叨恨,必須有一端使用weak

weak修飾的對象銷毀的時(shí)候,指針會(huì)自動(dòng)設(shè)置為nil

而assign不會(huì)挖垛,assign可以用于非OC對象痒钝,而weak必須用于OC對象

關(guān)于copy與strong

NSString秉颗、NSArray、NSDictionary常用copy送矩,為什么不用strong蚕甥?

strong是強(qiáng)引用,指向的是同一個(gè)內(nèi)存地址栋荸,copy是內(nèi)容拷貝菇怀,會(huì)另外開辟內(nèi)存空間,指針指向一個(gè)不同的內(nèi)存地址晌块,copy返回的是一個(gè)不可變對象爱沟,如果使用strong修飾可變對象,那么對象就會(huì)有可能被不經(jīng)意間修改匆背,有時(shí)不是我們想要的呼伸,而copy不會(huì)發(fā)生這種意外。

關(guān)于ARC下钝尸,不顯示指定屬性關(guān)鍵字時(shí)括享,默認(rèn)關(guān)鍵字有哪些?

1.基本數(shù)據(jù)類型:atomic? ? readwrite? ? assign

2.普通OC對象:? atomic? ? readwrite? ? strong

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

借鑒網(wǎng)上某位大神作品……? 非原創(chuàng)

圖片發(fā)自簡書App
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蝶怔,一起剝皮案震驚了整個(gè)濱河市奶浦,隨后出現(xiàn)的幾起案子兄墅,更是在濱河造成了極大的恐慌踢星,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件隙咸,死亡現(xiàn)場離奇詭異沐悦,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)五督,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門藏否,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人充包,你說我怎么就攤上這事副签。” “怎么了基矮?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵淆储,是天一觀的道長。 經(jīng)常有香客問我家浇,道長本砰,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任钢悲,我火速辦了婚禮点额,結(jié)果婚禮上舔株,老公的妹妹穿的比我還像新娘。我一直安慰自己还棱,他們只是感情好载慈,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著珍手,像睡著了一般娃肿。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上珠十,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天料扰,我揣著相機(jī)與錄音,去河邊找鬼焙蹭。 笑死晒杈,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的孔厉。 我是一名探鬼主播拯钻,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼撰豺!你這毒婦竟也來了粪般?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤污桦,失蹤者是張志新(化名)和其女友劉穎亩歹,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體凡橱,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡小作,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了稼钩。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片顾稀。...
    茶點(diǎn)故事閱讀 39,841評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖坝撑,靈堂內(nèi)的尸體忽然破棺而出静秆,到底是詐尸還是另有隱情,我是刑警寧澤巡李,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布抚笔,位于F島的核電站,受9級(jí)特大地震影響击儡,放射性物質(zhì)發(fā)生泄漏塔沃。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛀柴。 院中可真熱鬧螃概,春花似錦、人聲如沸鸽疾。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽制肮。三九已至冒窍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間豺鼻,已是汗流浹背综液。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留儒飒,地道東北人谬莹。 一個(gè)月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像桩了,于是被迫代替她去往敵國和親附帽。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評論 2 354

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

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結(jié)構(gòu)(3).初始化時(shí)...
    歐辰_OSR閱讀 29,383評論 8 265
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,101評論 1 32
  • OC語言基礎(chǔ) 1.類與對象 類方法 OC的類方法只有2種:靜態(tài)方法和實(shí)例方法兩種 在OC中井誉,只要方法聲明在@int...
    奇異果好補(bǔ)閱讀 4,271評論 0 11
  • 繼Glee颗圣,美恐和美最之后喳钟,我的RM(Ryan Murphy)大神再推出了新的神作《宿敵》。實(shí)不相瞞欠啤,我最初看...
    IrisLaw閱讀 1,271評論 2 2
  • 有女人的家才稱得上是一個(gè)完整的家荚藻。 有女人的家會(huì)笑聲不斷,幸福長遠(yuǎn)洁段! 女人,孩子的母親共郭、丈夫的妻子祠丝,這個(gè)角色不可或...
    系水青山肖35閱讀 173評論 0 1