8月末iOS面試總結(jié)

1贞言、簡(jiǎn)述內(nèi)存管理基本原則

之前:OC內(nèi)存管理遵循“誰創(chuàng)建斜棚,誰釋放,誰引用蜗字,誰管理”的機(jī)制打肝,當(dāng)創(chuàng)建或引用一個(gè)對(duì)象的時(shí)候脂新,需要向她發(fā)送alloc挪捕、copy、retain消息争便,當(dāng)釋放該對(duì)象時(shí)需要發(fā)送release消息级零,當(dāng)對(duì)象引用計(jì)數(shù)為0時(shí),系統(tǒng)將釋放該對(duì)象滞乙,這是OC的手動(dòng)管理機(jī)制(MRC)奏纪。

目前:iOS 5.0之后引用自動(dòng)管理機(jī)制——自動(dòng)引用計(jì)數(shù)(ARC),管理機(jī)制與手動(dòng)機(jī)制一樣斩启,只是不再需要調(diào)用retain序调、release、autorelease兔簇;它編譯時(shí)的特性发绢,當(dāng)你使用ARC時(shí)硬耍,在適當(dāng)位置插入release和autorelease;它引用strong和weak關(guān)鍵字边酒,strong修飾的指針變量指向?qū)ο髸r(shí)经柴,當(dāng)指針指向新值或者指針不復(fù)存在,相關(guān)聯(lián)的對(duì)象就會(huì)自動(dòng)釋放墩朦,而weak修飾的指針變量指向?qū)ο笈魅希?dāng)對(duì)象的擁有者指向新值或者不存在時(shí)weak修飾的指針會(huì)自動(dòng)置為nil。

如果使用alloc氓涣、copy(mutableCopy)或者retian一個(gè)對(duì)象時(shí),你就有義務(wù),向它發(fā)送一條release或者autorelease消息牛哺。其他方法創(chuàng)建的對(duì)象,不需要由你來管理內(nèi)存。

向一個(gè)對(duì)象發(fā)送一條autorelease消息,這個(gè)對(duì)象并不會(huì)立即銷毀, 而是將這個(gè)對(duì)象放入了自動(dòng)釋放池,待池子釋放時(shí),它會(huì)向池中每一個(gè)對(duì)象發(fā)送 一條release消息,以此來釋放對(duì)象.

向一個(gè)對(duì)象發(fā)送release消息,并不意味著這個(gè)對(duì)象被銷毀了,而是當(dāng)這個(gè)對(duì)象的引用計(jì)數(shù)為0時(shí),系統(tǒng)才會(huì)調(diào)用dealloc方法,釋放該對(duì)象和對(duì)象本身它所擁有的實(shí)例春哨。

其他注意事項(xiàng)

如果一個(gè)對(duì)象有一個(gè)_strong類型的指針指向著荆隘,找個(gè)對(duì)象就不會(huì)被釋放。如果一個(gè)指針指向超出了它的作用域赴背,就會(huì)被指向nil椰拒。如果一個(gè)指針被指向nil,那么它原來指向的對(duì)象就被釋放了凰荚。當(dāng)一個(gè)視圖控制器被釋放時(shí)燃观,它內(nèi)部的全局指針會(huì)被指向nil。用法“:不管全局變量還是局部變量用_strong描述就行便瑟。

局部變量:出了作用域缆毁,指針會(huì)被置為nil。

方法內(nèi)部創(chuàng)建對(duì)象到涂,外部使用需要添加_autorelease;

連線的時(shí)候脊框,用_weak描述。

代理使用unsafe_unretained就相當(dāng)于assign践啄;

block中為了避免循環(huán)引用問題浇雹,使用_weak描述;

聲明屬性時(shí)屿讽,不要以new開頭昭灵。如果非要以new開頭命名屬性的名字,需要自己定制get方法名伐谈,如

@property(getter=theString) NSString * newString;

如果要使用自動(dòng)釋放池烂完,用@autoreleasepool{}

ARC只能管理Foundation框架的變量,如果程序中把Foundation中的變量強(qiáng)制換成Core Foundation中的變量需要交換管理權(quán)诵棵;
在非ARC工程中采用ARC去編譯某些類:-fobjc-arc抠蚣。

在ARC下的工程采用非ARC去編譯某些類:-fno-fobjc-arc。

2履澳、簡(jiǎn)述#define和const變量有什么區(qū)別?

1嘶窄、#define在預(yù)處理階段進(jìn)行簡(jiǎn)單的替換缓屠,const在編譯階段使用
2、#define不做類型檢查护侮,僅僅展開替換敌完,const有數(shù)據(jù)類型,會(huì)執(zhí)行類型檢查
3羊初、#define不分配內(nèi)存滨溉,僅僅展開替換,const會(huì)分配內(nèi)存
4长赞、#define不能調(diào)試晦攒,const可以調(diào)試
5、#define定義的常量在替換后運(yùn)行過程中會(huì)不斷地占用內(nèi)存得哆,而const定義的常量存儲(chǔ)在數(shù)據(jù)段脯颜,只有一份copy,效率更高
6贩据、#definde可以定義一些簡(jiǎn)單的函數(shù)栋操,const不可以

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市饱亮,隨后出現(xiàn)的幾起案子矾芙,更是在濱河造成了極大的恐慌,老刑警劉巖近上,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件剔宪,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡壹无,警方通過查閱死者的電腦和手機(jī)葱绒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來斗锭,“玉大人地淀,你說我怎么就攤上這事【苎福” “怎么了骚秦?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵她倘,是天一觀的道長(zhǎng)璧微。 經(jīng)常有香客問我,道長(zhǎng)硬梁,這世上最難降的妖魔是什么前硫? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮荧止,結(jié)果婚禮上屹电,老公的妹妹穿的比我還像新娘阶剑。我一直安慰自己,他們只是感情好危号,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布牧愁。 她就那樣靜靜地躺著,像睡著了一般外莲。 火紅的嫁衣襯著肌膚如雪猪半。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天偷线,我揣著相機(jī)與錄音磨确,去河邊找鬼。 笑死声邦,一個(gè)胖子當(dāng)著我的面吹牛乏奥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播亥曹,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼邓了,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了媳瞪?” 一聲冷哼從身側(cè)響起驶悟,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎材失,沒想到半個(gè)月后痕鳍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡龙巨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年笼呆,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片旨别。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡诗赌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出秸弛,到底是詐尸還是另有隱情铭若,我是刑警寧澤,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布递览,位于F島的核電站叼屠,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏绞铃。R本人自食惡果不足惜镜雨,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望儿捧。 院中可真熱鬧荚坞,春花似錦挑宠、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至诡挂,卻和暖如春揪阿,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背咆畏。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工南捂, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人旧找。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓溺健,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親钮蛛。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鞭缭,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

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

  • *面試心聲:其實(shí)這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個(gè)offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,139評(píng)論 30 470
  • 多線程、特別是NSOperation 和 GCD 的內(nèi)部原理魏颓。運(yùn)行時(shí)機(jī)制的原理和運(yùn)用場(chǎng)景岭辣。SDWebImage的原...
    LZM輪回閱讀 2,007評(píng)論 0 12
  • iOS面試小貼士 ———————————————回答好下面的足夠了------------------------...
    不言不愛閱讀 1,978評(píng)論 0 7
  • 1.1 什么是自動(dòng)引用計(jì)數(shù) 概念:在 LLVM 編譯器中設(shè)置 ARC(Automaitc Reference Co...
    __silhouette閱讀 5,158評(píng)論 1 17
  • 史上最全的iOS面試題及答案 iOS面試小貼士———————————————回答好下面的足夠了----------...
    Style_偉閱讀 2,354評(píng)論 0 35