最近流行的面試題(有錯大家一起修改)

1.微信如何搜索附近人

這塊大致應該是地圖那一塊涉及到的內容
通過網絡或者GPS定位海诲,位置信息不是實時更新的。
通過微信使用的網絡(手機數(shù)據(jù)檩互、wifi連接)或者打開GPS進行定位特幔。
以自己為中心,計算服務器上與自己相近位置的人列出來闸昨。

2.你會如何保存用戶的敏感信息

可以使用keychain保存用戶名和密碼等敏感信息
KeychainItemWrapper和SFHKeychainUtils.

3.最近的ipv6上架的問題蚯斯,以及了解ipv6是什么

首先,ipv6是對ipv4地址空間的擴充饵较。我覺得解決這個方法最簡單粗暴的方法就是在IPV6環(huán)境下拍嵌,使用真機測試測試應用程序。(蘋果反饋的消息里面也給出了解決問題的方法)

4.消息機制底層實現(xiàn)知道嗎循诉?你用它做過什么横辆?

OC的函數(shù)調用被稱為消息發(fā)送。屬于動態(tài)調用過程茄猫。在編譯的時候不能真正決定使用哪個函數(shù)狈蚤。

5.NSOpration相比于GCD有哪些優(yōu)勢

GCD:
1.GCD是IOS4.0的時候退出的,主要是針對多核CPU進行優(yōu)化募疮,是純C語言的技術炫惩。
2.GCD是將任務添加到隊列(主隊列、串行阿浓、并行他嚷、全局隊列)并且以同步異步的方法執(zhí)行任務的函數(shù)
3.GCD所具備NSOpration不具備的功能
(1)一次性執(zhí)行
(2)延遲執(zhí)行
(3)調度組
(4)GCD是嚴格的隊列,是先進先出FIFO
NSOperation:
1.NSOperation是ios2.0之后推出的芭毙,ios4.0之后又對他進行了重寫
2.NSOpration是將操作(異步操作)添加到隊列(并行隊列)就會執(zhí)行指定的函數(shù)
3.NSOopration提供方便的操作
(1)可以設置最大并發(fā)數(shù)
(2)隊列的暫停和繼續(xù)
(3)取消所有操作
(4)指定操作之間的依賴關系筋蓖,可以讓異步任務同步執(zhí)行
(5)可以將KVO加入NSOperation,監(jiān)聽一個Opration是否完成
(6)能夠使同一個隊列中的并行任務區(qū)分先后執(zhí)行
(7)可以繼承NSOpration退敦,添加成員變量與成員方法粘咖,提高代碼質量

6.如何搜集APP異常信息(比如:崩潰、閃退等)

使用@try侈百、catch捕獲異常:

@try {
    //可能出現(xiàn)崩潰的代碼
    }
@catch (NSException *exception) {
    //捕獲到的異常exception
    }
@finally {
    //結果處理
    }

7.UIWebView有哪些性能問題瓮下?有沒有替代的方案

使用UIWebView來顯示圖片和動態(tài)圖翰铡,會占用很多內存,內存占用多了之后就會出現(xiàn)卡頓讽坏。如果播放的圖片比較少占的內存比較小或者比較常用锭魔,可以選擇用imageNamed:方式獲取圖片。

8.了解GCD的信號量機制嗎路呜?能談談你對他的理解么迷捧!

信號量是一個整形值并且具有一個初始計數(shù)值,并且支持兩個操作:信號通知和等待胀葱。當一個信號量被信號通知漠秋,其計數(shù)會被增加。當一個線程在一個信號量上等待時抵屿,線程會被阻塞(如果有必要的話)庆锦,直至計數(shù)器大于零,然后線程會減少這個計數(shù)轧葛。

9.block的底層實現(xiàn)

block的本質是一個指向結構體的指針
運行時機制 比較高級的特性 純C語言
平時寫的OC代碼裝換成C語言運行時的代碼
指令:clang -rewrite-objc main.m(可以打印驗證)
默認情況下肥荔,block都在棧里面的,隨時可能被回收
只對其做一次copy操作 block的內存會在堆里面朝群,不會被釋放
只有copy會產生一個新的內存地址燕耿,所有地址會發(fā)生改變

10.響應鏈底層的理解

時間響應鏈。包括點擊時間姜胖,畫面刷新事件誉帅、運動事件等。在視圖棧內從上至下右莱,或者從下至上傳播蚜锨。可以說點事件的分發(fā)慢蜓,傳遞以及處理亚再。具體可以去看下touch事件這塊。因為問的太抽象化了嚴重懷疑題目越后面就越籠統(tǒng)晨抡》招可以從責任鏈模式,來講通過時間響應鏈處理耘柱,其擁有擴展性如捅。

11.KVO和KVC

KVC:鍵 - 值編碼是一種簡介訪問對象的屬性使用字符串來標識屬性,而不是通過調用存取方法调煎,直接或通過實例變量訪問的機制镜遣。
很多情況下可以簡化程序代碼。apple文檔其實給了一個很好的例子(有興趣自己去看)士袄。
KVO:鍵值觀察機制悲关,他提供了觀察某一屬性變化的方法谎僻,極大簡化了代碼。
具體看到用過的地方就是對于按鈕點擊變化狀態(tài)的監(jiān)控寓辱。
比如自定義一個button

[self addObserver:self forKeyPath:@"highlight" option:0 context:nil];
\\#pragma mark KVO

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if ([keyPath isEqualToString:@"highlighted"])  {
    [self setNeedsDisplay];
   }
}

對于系統(tǒng)是根據(jù)keypath去取的到相應的值發(fā)生的變化戈稿,理論上來說和KVC機制的道理是一樣的。
對于KVC機制如何通過key尋找到value:
當通過KVC調用對象時讶舰,比如:[self valueForKey:@"someKey"]時,程序會自動通過幾種不同的方式解析這個調用需了。首先查找對象是否帶有 someKey 這個方法跳昼,如果沒找到,會繼續(xù)查找對象是否帶有someKey這個實例變量(iVar)肋乍,如果還沒有找到鹅颊,程序會繼續(xù)試圖調用 - (id) valeForUndefineKey:這個方法。如果這個方法還是沒有實現(xiàn)的話墓造,程序會拋出一個NSUnfinedKeyException的異常錯誤堪伍。 (cocoachina.com注:Key-Value Coding查找方法的時候,不僅僅會查找someKey這個方法觅闽,還會查找getsomeKey這個方法帝雇,前面加一個get,或者someKey以及getsomeKey這幾種形式。同時蛉拙,查找實力變量的時候也會不僅僅查找someKey這個變量尸闸,也會查找_someKey這個變量是否存在。) - 設計valueForUndefinedKey:方法的主要目的是當你使用-(id)valueForKey放阿飛從對象中請求值時孕锄,對象能夠在錯誤發(fā)生前吮廉,有最后的機會相應這個請求,足額楊做有很多好處畸肆,下面的兩個例子說明了這樣做的好處宦芦。 來自cocoa,這個說法應該有道理轴脐。 因為我們知道button是存在一個highlighted實例變量调卑,因此為何上面我們只會add一個相關的keypath就行了,可以按照KVC查找的邏輯理解大咱,就說的過去了令野。

12.lldb(gdb)常用的調試命令

*po:打印對象,會調用對象description方法徽级。是print-object的簡寫
*expr:可以在調試時動態(tài)執(zhí)行指定表達式气破,并將結果打印出來,很有用的命令
*print:也是打印命令餐抢,需要指定類型
*bt:打印調用堆棧现使,是thread backtreace的簡寫低匙,加all可打印出所有thread的堆棧
*br l:是breakpoint list的簡寫

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市碳锈,隨后出現(xiàn)的幾起案子顽冶,更是在濱河造成了極大的恐慌,老刑警劉巖售碳,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件强重,死亡現(xiàn)場離奇詭異,居然都是意外死亡贸人,警方通過查閱死者的電腦和手機间景,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來艺智,“玉大人倘要,你說我怎么就攤上這事∈穑” “怎么了封拧?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長夭问。 經常有香客問我泽西,道長,這世上最難降的妖魔是什么缰趋? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任尝苇,我火速辦了婚禮,結果婚禮上埠胖,老公的妹妹穿的比我還像新娘糠溜。我一直安慰自己,他們只是感情好直撤,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布非竿。 她就那樣靜靜地躺著,像睡著了一般谋竖。 火紅的嫁衣襯著肌膚如雪红柱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天蓖乘,我揣著相機與錄音锤悄,去河邊找鬼。 笑死嘉抒,一個胖子當著我的面吹牛零聚,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼隶症,長吁一口氣:“原來是場噩夢啊……” “哼政模!你這毒婦竟也來了?” 一聲冷哼從身側響起蚂会,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤淋样,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后胁住,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體趁猴,經...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年彪见,在試婚紗的時候發(fā)現(xiàn)自己被綠了儡司。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡企巢,死狀恐怖,靈堂內的尸體忽然破棺而出让蕾,到底是詐尸還是另有隱情浪规,我是刑警寧澤,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布探孝,位于F島的核電站笋婿,受9級特大地震影響,放射性物質發(fā)生泄漏顿颅。R本人自食惡果不足惜缸濒,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望粱腻。 院中可真熱鬧庇配,春花似錦、人聲如沸绍些。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽柬批。三九已至啸澡,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間氮帐,已是汗流浹背嗅虏。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留上沐,地道東北人皮服。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親冰更。 傳聞我的和親對象是個殘疾皇子产徊,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內容

  • ———————————————回答好下面的足夠了---------------------------------...
    恒愛DE問候閱讀 1,717評論 0 4
  • 史上最全的iOS面試題及答案 iOS面試小貼士———————————————回答好下面的足夠了----------...
    Style_偉閱讀 2,356評論 0 35
  • iOS面試小貼士 ———————————————回答好下面的足夠了------------------------...
    不言不愛閱讀 1,984評論 0 7
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結起來就是把...
    Dove_iOS閱讀 27,152評論 30 470
  • 多線程、特別是NSOperation 和 GCD 的內部原理蜀细。運行時機制的原理和運用場景舟铜。SDWebImage的原...
    LZM輪回閱讀 2,008評論 0 12