iOS開發(fā)之路---我的6月面試總結(jié)

第一部分:基礎知識

1.oc中的各種鎖。為什么有效率高低之分?

鎖是線程編程同步工具的基礎。iOS開發(fā)中常用的鎖有如下幾種:

1.@synchronized

2.NSLock 對象鎖

3.NSRecursiveLock 遞歸鎖

4.NSConditionLock 條件鎖

5.pthread_mutex 互斥鎖(C語言)

6.dispatch_semaphore 信號量實現(xiàn)加鎖(GCD)

7.OSSpinLock (暫不建議使用,原因參見這里,在 iOS 10/macOS 10.12 發(fā)布時,蘋果提供了新的?os_unfair_lock 作為 OSSpinLock 的替代裸卫,并且將 OSSpinLock 標記為了 Deprecated。)

為什么會有效率高低之分?

請參考下面這篇文章:iOS開發(fā)中自旋和互斥鎖的理解以及所有鎖的性能比較

參考資料: 1.??iOS 中幾種常用的鎖總結(jié)

2.mvc和mvvm的區(qū)別纽竣,各有什么優(yōu)劣墓贿?

MVC :

先說一下作為一個開發(fā)人員來說,眾所周知的一個設計模式:MVC,全稱為:Model-View-Model.主要目的:分離視圖(View)和模型(Model).想必我們用著已經(jīng)非常習慣,但是他有存在一些問題,這是筆者想通過此文告訴大家的:

1.模型的代碼少

2.控制器的代碼卻是越寫越多

3.由于寫的代碼較多,故不好進行性能測試

MVVM :

全稱:Model-View-ViewModel 茧泪,MVVM 模式和 MVC 模式一樣,主要目的也是分離視圖(View)和模型(Model)概念:

1.在MVVM中,view與viewController正式聯(lián)系在一起,我們可以把他們視為一個組件

2.在MVVM架構(gòu)中,view與viewController均不能直接引用model,而是通過引用viewModel來間接引用model

3.很多人會問,viewModel是一個什么樣的架構(gòu)呢?里面應該放些什么樣的東西呢?我們可以在viewModel中放置用戶輸入邏輯,視圖顯示邏輯及發(fā)送網(wǎng)絡請求和其他一些代碼

那么作為一種新型的架構(gòu)模式,在使用時應該有哪些地方值得我們注意呢?

1.view 可以引用viewModel,但反過來卻是不行

2.viewModel 可以引用model,但是反過來也不行

3.如果我們違背了上述規(guī)則,那么我們將會無法正常使用MVVM

MVVM自推出以后,便得到了大多數(shù)開發(fā)人員的認可,那么MVVC這種設計模式有什么優(yōu)點呢?

1.低耦合:view/viewController可以獨立于Model而進行變化和修改,與此同時,一個viewModel可以綁定到不同的view/ViewController上

2.可重用性:可以把一些視圖邏輯放在一個ViewModel里面,讓很多view/ViewController進行重用

3.獨立開發(fā):通過MVVM,開發(fā)人員可以專注于邏輯開發(fā)在viewModel里面,而設計人員也可以專注于頁面設計,并且使用ExpressionBlend可以更加容易設計頁面和生成XAML(Extensible Application Markup Language)代碼.

4.可測試:通常來說,要進行,界面測試比較困難,而MVVM可以對viewModel進行測試.

3.程序什么時候會發(fā)生崩潰聋袋?

遞歸調(diào)用队伟,主線程卡死,死鎖幽勒。權(quán)限不足嗜侮。本地數(shù)據(jù)庫改變,excbadaccess

4.拓展和分類是什么時候被實現(xiàn)的啥容?

分類是在運行時,拓展是在編譯時確定的.

5.事件的響應鏈锈颗,如何判斷控件能否響應事件?

iOS事件傳遞和事件響應

6.你是怎么使用通知的?在子線程發(fā)出的通知能在主線程收到通知嗎?代理咪惠,通知击吱,block用法,kvo用法?

7.block為什么用copy修飾?

因為在MRC下遥昧,block在創(chuàng)建的時候覆醇,它的內(nèi)存是分配在棧(stack)上的,而不是在堆(heap)上炭臭,可能被隨時回收永脓。他本身的作于域是屬于創(chuàng)建時候的作用域,一旦在創(chuàng)建時候的作用域外面調(diào)用block將導致程序崩潰鞋仍。通過copy可以把block拷貝(copy)到堆常摧,保證block的聲明域外使用。在ARC下寫不寫都行威创,編譯器會自動對block進行copy操作落午。

8.控制器什么時候不會被釋放?

Block循環(huán)引用,代理循環(huán)引用那婉,NSTimer未銷毀

9.分類如何增加屬性。

10.內(nèi)存五大區(qū)域党瓮,沙盒內(nèi)容详炬,有什么作用?單例聲明的對象存儲在哪里?




第二部分:UI布局以及網(wǎng)絡相關(guān)

1.橫向兩個label保證右邊寬度。

UILabel *leftLabel = [[UILabel alloc]init];? ?

leftLabel.text = @"動器萬德福千動器萬動器萬德福千動器萬動器萬德福千動器萬動器萬德福千動器萬動器萬德福千動器萬動器萬德福千動器萬";? ?

leftLabel.backgroundColor = [UIColor redColor];? ?

[self.view addSubview:leftLabel];?? ?? ?

UILabel *rightLabel = [[UILabel alloc]init];? ?

rightLabel.text = @"3D3D3D3D3D3D3D3D3D3D3D3D3D";? ?

rightLabel.backgroundColor = [UIColor grayColor];? ?

[self.view addSubview:rightLabel];?? ?? ?

[leftLabel mas_makeConstraints:^(MASConstraintMaker *make) {? ? ? ? make.top.equalTo(self.view.mas_top).with.offset(50);? ?

make.left.equalTo(self.view.mas_left).with.offset(2);? ? ? ?

make.height.equalTo(@40);? ? ? ??

make.width.mas_greaterThanOrEqualTo(300);? ? //防止因為右邊的label過寬導致左邊被擠沒了

}];? ?

[rightLabel mas_makeConstraints:^(MASConstraintMaker *make) {? ? ? ? make.left.equalTo(leftLabel.mas_right).with.offset(2);? ? ? ? make.top.equalTo(self.view.mas_top).with.offset(50);? ? ? ? make.right.equalTo(self.view.mas_right).with.offset(-2);? ? ? ?

make.height.equalTo(@40);? ? ?

}];

//讓右邊的label抗壓縮的等級比左邊高,更加不容易被拉伸!

?[rightLabel setContentCompressionResistancePriority:UILayoutPriorityRequired?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? forAxis:UILayoutConstraintAxisHorizontal];

2.http是怎么實現(xiàn)的安全寞奸,http連接的三次握手和四次揮手呛谜,自己為什么是四次而不是三次?

3.接口地址從http升級到https應該怎么解決?要注意什么?



第三部分:簡單算法

1.斐波那契數(shù)列求和枪萄。

2.字符串轉(zhuǎn)數(shù)組

3.把一個數(shù)組反向排序隐岛。

4.把兩個有序數(shù)組合并成一個數(shù)組,不要污染原數(shù)組瓷翻。


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末聚凹,一起剝皮案震驚了整個濱河市割坠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌妒牙,老刑警劉巖彼哼,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異湘今,居然都是意外死亡敢朱,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門摩瞎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來拴签,“玉大人,你說我怎么就攤上這事旗们◎玖ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵蚪拦,是天一觀的道長杖剪。 經(jīng)常有香客問我,道長驰贷,這世上最難降的妖魔是什么盛嘿? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮括袒,結(jié)果婚禮上次兆,老公的妹妹穿的比我還像新娘。我一直安慰自己锹锰,他們只是感情好芥炭,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著恃慧,像睡著了一般园蝠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上痢士,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天彪薛,我揣著相機與錄音,去河邊找鬼怠蹂。 笑死善延,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的城侧。 我是一名探鬼主播易遣,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼嫌佑!你這毒婦竟也來了豆茫?” 一聲冷哼從身側(cè)響起侨歉,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎澜薄,沒想到半個月后为肮,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡肤京,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年颊艳,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忘分。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡棋枕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出妒峦,到底是詐尸還是另有隱情重斑,我是刑警寧澤,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布肯骇,位于F島的核電站窥浪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏笛丙。R本人自食惡果不足惜漾脂,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望胚鸯。 院中可真熱鬧骨稿,春花似錦、人聲如沸姜钳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哥桥。三九已至辙浑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拟糕,已是汗流浹背判呕。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留已卸,地道東北人佛玄。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓硼一,卻偏偏與公主長得像累澡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子般贼,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355