iOS關鍵字

一、assign (ARC/MRC)

1移盆、assign在ARC和MRC中都是存在的
2币喧、assign一般用來修飾基本數(shù)據(jù)類型
3轨域、assign也可用來修飾對象,但是杀餐,對象的引用計數(shù)不會+1(與strong的區(qū)別)
4干发、assign如果用來修飾對象屬性,當對象銷毀后指針不會指向nil史翘,會出現(xiàn)野指針錯誤(與weak的區(qū)別)
5铐然、在MRC用assign來修飾代理,是為了防止循環(huán)引用恶座。

二、weak(ARC)
1沥阳、弱指針是針對對象的修飾詞 , 就是說它不能修飾基本數(shù)據(jù)類型 跨琳。
2、weak修飾的對象桐罕,引用計數(shù)不會+1脉让,即直接賦值
3、弱引用是為打破循環(huán)引用而生的
4功炮、它所指向的對象如果被銷毀 , 它會指向 nil . 而 nil 訪問什么鬼都不會報野指針錯誤 .

三溅潜、strong(ARC)

1、直接賦值薪伏,對象引用計數(shù)+1
2滚澜、功能等價于MRC里面的retain

四、copy(ARC/MRC)

1嫁怀、在 MRC 時是這樣做的 release 舊對象( 舊對象計數(shù)器 -1 ) , copy 新對象( 新對象計數(shù)器 +1 ) , 然后指向新對象 设捐。
2借浊、在 ARC 時是這么干的 copy 新對象( 新對象計數(shù)器 +1 ) , 然后指向新對象 。

五萝招、原子屬性(atomic)和非原子屬性(nonatomic)(ARC/MRC)

非原子屬性(nonatomic):
1蚂斤、不對set方法加鎖(@synchronized),互斥鎖是利用線程同步實現(xiàn)的 , 意在保證同一時間只有一個線程調用 set 方法 。
2槐沼、性能好
3曙蒸、線程不安全

原子屬性(atomic):
1、原子屬性就是對生成的 set 方法加互斥鎖 @synchronized(鎖對象)
2岗钩、需要消耗系統(tǒng)資源
3纽窟、還有 get 方法 , 要是同時 set 和 get 一起調用還是會有問題的 . 所以即使用了 atomic 修飾 還是不夠安全 .

六、readOnly(只讀)凹嘲、readWrite(讀寫)

readOnly:
1师倔、只讀屬性,意味著只合成getter方法
2周蹭、不想把暴露的屬性被別人替換趋艘,可以使用readOnly修飾

readWrite:
1、生成getter和setter方法
2凶朗、不用readOnly修飾時候瓷胧,默認為readWrite

static 關鍵字的作用

1.函數(shù)體內(nèi) static 變量的作用范圍為該函數(shù)體,不同于 auto 變量棚愤,該變量的內(nèi)存只被分配一次搓萧,

因此其值在下次調用時仍維持上次的值;

2.在模塊內(nèi)的 static 全局變量可以被模塊內(nèi)所用函數(shù)訪問宛畦,但不能被模塊外其它函數(shù)訪問瘸洛;

3.在模塊內(nèi)的 static 函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調用,這個函數(shù)的使用范圍被限制在聲明 它的模塊內(nèi)次和;

4.在類中的 static 成員變量屬于整個類所擁有反肋,對類的所有對象只有一份拷貝;

5.在類中的 static 成員函數(shù)屬于整個類所擁有踏施,這個函數(shù)不接收 this 指針石蔗,因而只能訪問類的static 成員變量。

__block和__weak修飾符的區(qū)別:

__block不管是ARC還是MRC模式下都可以使用畅形,可以修飾對象养距,還可以修飾基本數(shù)據(jù)類型。 
__weak只能在ARC模式下使用日熬,也只能修飾對象(NSString)棍厌,不能修飾基本數(shù)據(jù)類型(int)。 
__block對象可以在block中被重新賦值,__weak不可以定铜。

weak和strong的區(qū)別:weak和strong不同的是 當一個對象不再有strong類型的指針指向它的時候 它會被釋放 阳液,即使還有weak型指針指向它。一旦最后一個strong型指針離去 揣炕,這個對象將被釋放帘皿,所有剩余的weak型指針都將被清除。

copy與retain:

copy其實是建立了一個相同的對象畸陡,而retain不是. 
copy是內(nèi)容拷貝鹰溜,retain是指針拷貝. 
copy是內(nèi)容的拷貝 ,對于像NSString,的確是這樣,如果拷貝的是NSArray這時只是copy了指向array中相對應元素的指針.這便是所謂的"淺復制". 

atomic是Objc使用的一種線程保護技術丁恭,基本上來講曹动,是防止在寫未完成的時候被另外一個線程讀取,造成數(shù)據(jù)錯誤牲览。而這種機制是耗費系統(tǒng)資源的墓陈,所以在iPhone這種小型設備上,如果沒有使用多線程間的通訊編程第献,那么nonatomic是一個非常好的選擇贡必。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市庸毫,隨后出現(xiàn)的幾起案子仔拟,更是在濱河造成了極大的恐慌,老刑警劉巖飒赃,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件利花,死亡現(xiàn)場離奇詭異,居然都是意外死亡载佳,警方通過查閱死者的電腦和手機炒事,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔫慧,“玉大人羡洛,你說我怎么就攤上這事∨菏” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵崭闲,是天一觀的道長肋联。 經(jīng)常有香客問我,道長刁俭,這世上最難降的妖魔是什么橄仍? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上侮繁,老公的妹妹穿的比我還像新娘虑粥。我一直安慰自己,他們只是感情好宪哩,可當我...
    茶點故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布娩贷。 她就那樣靜靜地躺著,像睡著了一般锁孟。 火紅的嫁衣襯著肌膚如雪彬祖。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天品抽,我揣著相機與錄音储笑,去河邊找鬼。 笑死圆恤,一個胖子當著我的面吹牛突倍,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播盆昙,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼羽历,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了弱左?” 一聲冷哼從身側響起窄陡,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎拆火,沒想到半個月后跳夭,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡们镜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年币叹,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片模狭。...
    茶點故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡颈抚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出嚼鹉,到底是詐尸還是另有隱情贩汉,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布锚赤,位于F島的核電站匹舞,受9級特大地震影響,放射性物質發(fā)生泄漏线脚。R本人自食惡果不足惜赐稽,卻給世界環(huán)境...
    茶點故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一叫榕、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧姊舵,春花似錦晰绎、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至躏将,卻和暖如春锄弱,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背祸憋。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工会宪, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蚯窥。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓掸鹅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親拦赠。 傳聞我的和親對象是個殘疾皇子巍沙,可洞房花燭夜當晚...
    茶點故事閱讀 42,901評論 2 345

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

  • 1.ios高性能編程 (1).內(nèi)層 最小的內(nèi)層平均值和峰值(2).耗電量 高效的算法和數(shù)據(jù)結構(3).初始化時...
    歐辰_OSR閱讀 29,321評論 8 265
  • 一、定義 weak:簡單來講是弱引用荷鼠。引用計數(shù)器不會加一句携,只能修飾對象 ,對象釋放后允乐,指針為nil矮嫉,對nil 訪問...
    LHsunshine閱讀 520評論 0 2
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,089評論 1 32
  • OC語言基礎 1.類與對象 類方法 OC的類方法只有2種:靜態(tài)方法和實例方法兩種 在OC中,只要方法聲明在@int...
    奇異果好補閱讀 4,250評論 0 11
  • 1.eBay當時的CEO梅格·惠特曼牍疏,曾放言蠢笋,中國在線拍賣市場的競爭將會在18個月內(nèi)結束——惠特曼弄錯了,這場戰(zhàn)爭...
    極爺?shù)幕示V閱讀 724評論 0 1