iOS Interview

生存不易蜗细,為了生活裆操,為了money怒详,自己必須強大起來炉媒。最近,馬上會迎來自己的面試高峰期昆烁,自己搜集了一些非常容易被面試官提及的iOS基礎(chǔ)面試題吊骤,特總結(jié)歸納并自己湊不要臉的回答一下(排序不分先后以及重要程度)。

Here we go!?

- TCP静尼、UDP協(xié)議和區(qū)別白粉?

TCP (Transmission Control Protocal, 傳輸控制協(xié)議):提供的是面向連接、可靠的字節(jié)流服務(wù)鼠渺。當(dāng)客戶Client和服務(wù)器Server彼此交換數(shù)據(jù)前鸭巴,必須在雙方之間建立一個TCP連接,之后才可以傳輸數(shù)據(jù)拦盹。

UDP (User Data Protocal, 用戶數(shù)據(jù)報協(xié)議):是一個簡單的面向數(shù)據(jù)報的運輸層協(xié)議鹃祖。UDP并不可靠,它只是把應(yīng)用程序傳給IP層的數(shù)據(jù)報發(fā)送出去普舆,但是并不能保證到達(dá)目的地恬口。就是說我只管發(fā)校读,至于到不到,那我不能保證祖能。傳輸過程無需建立連接歉秫,數(shù)據(jù)快于TCP。

這里側(cè)重說明一下TCP連接的三次“握手”:
1. 主機A向主機B發(fā)送連接請求數(shù)據(jù)包养铸;
2. 主機B向主機A發(fā)送同意連接要求同步(一個發(fā)送雁芙、一個接收,協(xié)調(diào)工作)的數(shù)據(jù)包钞螟;
3. 主機A向主機B發(fā)送確認(rèn)同步數(shù)據(jù)包却特;

區(qū)別:
是否面向連接、傳輸是否可靠筛圆、傳輸數(shù)據(jù)量大小裂明、速度快慢

- iOS內(nèi)存管理機制 & ARC? ? ??

說明內(nèi)存管理機制之前太援,先講一個經(jīng)典的內(nèi)存泄露的例子:

內(nèi)存泄露

1) 一個對象創(chuàng)建并保留計數(shù)器的值為1的對象A闽晦;
2) 對象A創(chuàng)建并保留計數(shù)器的值為1的對象B并將其作為子對象;
3) 對象A創(chuàng)建了對象B提岔,所以對象A擁有一個指向?qū)ο驜的強引用仙蛉;如果對象B有一個指向?qū)ο驛的強引用,那么對象A的保留計數(shù)器的值會增加到2碱蒙;
4) 當(dāng)對象A的擁有者向?qū)ο驛發(fā)送release消息荠瘪,這樣會讓對象A的保留計數(shù)器的值減少到1;

這樣赛惩,由于對象A所創(chuàng)建的對象B的保留計數(shù)器的值仍為1哀墓,所以對象A和B都沒有被釋放掉,造成了內(nèi)存泄露喷兼。

解決辦法:使用弱引用篮绰。
弱引用不會增加保留計數(shù)器的值柑土,因此當(dāng)對象A的擁有者釋放它的時候扶欣,它的保留計數(shù)器的值會變成0,它也會釋放對象B欠动。

歸零弱引用:指向的對象釋放之后勉抓,這些弱引用就會被設(shè)置為零(即nil)贾漏。
__weak NSString *myString;
@property (weak) NSString *myString;

Cocoa的內(nèi)存管理規(guī)則:
- 如果使用new、alloc或copy操作獲得一個對象藕筋,則該對象的保留計數(shù)器的值為1纵散;
- 如果通過其他方法獲得一個對象,則假設(shè)該對象的保留計數(shù)器的值為1,而且已經(jīng)被設(shè)置為自動釋放困食;
- 如果保留了某對象边翁,則必須保持retain方法和release方法的使用次數(shù)相同;

ARC (automatic reference counting) 會在編譯過程中通過插入這些語句來幫組你執(zhí)行保留或釋放操作硕盹。

copy,retain,assign的區(qū)別符匾?

?copy:把原來的對象完整的賦值到另外一地方,重新加載一內(nèi)存區(qū)瘩例,一個地方變了不影響另一個地方的對象啊胶。
?assign:簡單的直接賦值,相當(dāng)于說兩個對象指向同個內(nèi)存區(qū)垛贤,一個地方的變了焰坪,其他的也跟著改變。
?retain:釋放舊的對象聘惦,將舊對象的值賦予輸入對象某饰,再提高輸入對象的索引計數(shù)為1

那上面的是什么意思呢?
copy其實是建立了一個相同的對象,而 retain 不是:
比如一個NSString對象,地址為0×1111善绎,內(nèi)容為@”ABC”黔漂;
copy 到另外一個NSString之 后,地址為0×2222禀酱,內(nèi)容相同炬守,新的對象retain 為 1,舊 有對象沒有變化剂跟;
retain 到另外一個NSString之 后减途,地址相同(建立一個指針,指針拷貝)曹洽,內(nèi)容當(dāng)然相同鳍置,這個對象的 retain 值+1;
assign 地址還是0x1111衣洁,內(nèi)容也還是“ABC”墓捻。
也就是說,retain 是指針拷貝坊夫,copy 是內(nèi)容拷貝。

- KVO撤卢,Noification &Delegate 區(qū)別环凿?

在功能上說,delegate放吩、Notification以及KVO的功能類似智听,都是作用于OC中對象的消息通信。但三者的使用場景是不同的。簡單的說Delegate是一種回掉函數(shù)到推,更多的用在一對一的場合考赛;Notification 用得較少,使用Notification Center莉测,類似廣播方式颜骤,所以更適合一對多的通信;KVO捣卤,key-Value-Observing忍抽,觀察者模式,適用于偵聽另一對象的屬性的變化董朝。

如何選擇KVO鸠项,Noification &Delegate?
請參考這里 IOS 如何選擇delegate子姜、notification祟绊、KVO?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末哥捕,一起剝皮案震驚了整個濱河市久免,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌扭弧,老刑警劉巖阎姥,帶你破解...
    沈念sama閱讀 218,858評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異鸽捻,居然都是意外死亡呼巴,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,372評論 3 395
  • 文/潘曉璐 我一進(jìn)店門御蒲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來衣赶,“玉大人,你說我怎么就攤上這事厚满「椋” “怎么了?”我有些...
    開封第一講書人閱讀 165,282評論 0 356
  • 文/不壞的土叔 我叫張陵碘箍,是天一觀的道長遵馆。 經(jīng)常有香客問我,道長丰榴,這世上最難降的妖魔是什么货邓? 我笑而不...
    開封第一講書人閱讀 58,842評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮四濒,結(jié)果婚禮上换况,老公的妹妹穿的比我還像新娘职辨。我一直安慰自己,他們只是感情好戈二,可當(dāng)我...
    茶點故事閱讀 67,857評論 6 392
  • 文/花漫 我一把揭開白布舒裤。 她就那樣靜靜地躺著,像睡著了一般觉吭。 火紅的嫁衣襯著肌膚如雪腾供。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,679評論 1 305
  • 那天亏栈,我揣著相機與錄音台腥,去河邊找鬼。 笑死绒北,一個胖子當(dāng)著我的面吹牛黎侈,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播闷游,決...
    沈念sama閱讀 40,406評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼峻汉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了脐往?” 一聲冷哼從身側(cè)響起休吠,我...
    開封第一講書人閱讀 39,311評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎业簿,沒想到半個月后瘤礁,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,767評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡梅尤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年柜思,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片巷燥。...
    茶點故事閱讀 40,090評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡赡盘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出缰揪,到底是詐尸還是另有隱情陨享,我是刑警寧澤,帶...
    沈念sama閱讀 35,785評論 5 346
  • 正文 年R本政府宣布钝腺,位于F島的核電站抛姑,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拍屑。R本人自食惡果不足惜途戒,卻給世界環(huán)境...
    茶點故事閱讀 41,420評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望僵驰。 院中可真熱鬧,春花似錦、人聲如沸蒜茴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,988評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽粉私。三九已至顽腾,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間诺核,已是汗流浹背抄肖。 一陣腳步聲響...
    開封第一講書人閱讀 33,101評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留窖杀,地道東北人漓摩。 一個月前我還...
    沈念sama閱讀 48,298評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像入客,于是被迫代替她去往敵國和親管毙。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,033評論 2 355

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

  • 多線程桌硫、特別是NSOperation 和 GCD 的內(nèi)部原理夭咬。運行時機制的原理和運用場景。SDWebImage的原...
    LZM輪回閱讀 2,007評論 0 12
  • __block和__weak修飾符的區(qū)別其實是挺明顯的:1.__block不管是ARC還是MRC模式下都可以使用铆隘,...
    LZM輪回閱讀 3,314評論 0 6
  • 史上最全的iOS面試題及答案 iOS面試小貼士———————————————回答好下面的足夠了----------...
    Style_偉閱讀 2,356評論 0 35
  • 說明:面試題來源是微博@我就叫Sunny怎么了的這篇博文:《招聘一個靠譜的 iOS》卓舵,其中共55題,除第一題為糾錯...
    騎行怪狀閱讀 1,453評論 0 9
  • 所有事情的價值都在于你怎么看待它膀钠。值月是一次很好的經(jīng)歷掏湾,讓我在慣常的生活和工作中體驗不一樣的存在方式。當(dāng)我決定做值...
    氪星人閱讀 649評論 9 10