iOS面試準備

1盯腌、YYModel在Swift中的使用與OC中有沒有什么不同孽锥?(此問題為小眾問題)

不同:
1)逮光、無法將 Model 的屬性匹配到指定的 JSON/NSDictionary.
2)卒落、無法將model屬性關(guān)聯(lián)到其他model
同:簡單的 JSON 與 Model 的轉(zhuǎn)換都可以。

2嫩与、項目中有C++怎么處理內(nèi)存問題寝姿?###

內(nèi)存分區(qū):
1)、棧區(qū)(stack)— 由編譯器自動分配釋放 划滋,存放函數(shù)的參數(shù)值饵筑,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧处坪。
2)根资、堆區(qū)(heap) — 一般由程序員分配釋放, 若程序員不釋放同窘,程序結(jié)束時可能由OS回收 玄帕。
3)、全局區(qū)(靜態(tài)區(qū))(static)—想邦,全局變量和靜態(tài)變量的存儲是放在一塊的裤纹,初始化的全局變量和靜態(tài)變量在一塊區(qū)域, 未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域案狠。 - 程序結(jié)束后有系統(tǒng)釋放服傍。注意:全局區(qū)又可分為未初始化全局區(qū):.bss段和初始化全局區(qū):data段。
4)骂铁、常量區(qū)—常量字符串就是放在這里的。 程序結(jié)束后由系統(tǒng)釋放
5)罩抗、代碼區(qū)—存放函數(shù)體的二進制代碼拉庵。

3、Swift上架過程中與OC有什么區(qū)別嗎套蒂?

沒有吧.

4钞支、search搜索,搜索了5次,網(wǎng)絡(luò)比較慢,如何處理?###

答:多次請求使用GCD來實現(xiàn)操刀,把用戶搜索請求加入隊列里進行執(zhí)行烁挟,未執(zhí)行完畢的任務(wù)取消,已執(zhí)行完畢的任務(wù)過濾骨坑,只執(zhí)行最新一次的搜索任務(wù)撼嗓。(其中牽扯到線程通信的問題)

線程通信的問題琼了?
答:????

5婉支、OC種如何調(diào)用Swift中的枚舉?###

答:swift枚舉的數(shù)據(jù)類型是未指定的,在OC中找到對應(yīng)的枚舉值蜈亩,swift要在定義的時候定義枚舉值的類型,可以是string或NSInteger

6壤玫、怎么在不提交版本的情況下來修復(fù)程序出現(xiàn)的bug精绎?

答:上架應(yīng)用-熱修復(fù):hotfix. 
hotfix是什么?
答:?杏头?盈包??

7醇王、swift中week和unowned(昂偶的)的區(qū)別续语?###

共同點:都是弱引用,都是解決循環(huán)引用造成的內(nèi)存無法釋放問題厦画。
不同點:week修飾的是var類型的可選型;unowned修飾的是let(常量)類型的非可選型(不能是可選型).
unowned缺點:由于修復(fù)的不可設(shè)置為nil,打破循環(huán)的情況下疮茄, unowned修飾的對象會指向錯誤(不會知道nil,也不會知道對應(yīng)對象,而是指向位置內(nèi)存地址,所以需要保證unowned修飾的對象不能提前的設(shè)置為nil.
注意:不能修飾函數(shù)。(例如閉包強引用內(nèi)存泄漏時無法使用week和unowned)

8根暑、Rac?###

ReactiveCocoa(簡稱Rac),是有Github開源的一個應(yīng)用于iOS和OS開發(fā)的新框架,Cocoa是蘋果整套框架的簡稱力试。
作用:可以把要處理的事情和監(jiān)聽的事情的代碼放在一起,這樣非常方便我們管理排嫌,就不需要跳轉(zhuǎn)到對應(yīng)的方法里畸裳,非常符合我們開發(fā)的高聚合、低耦合的思想淳地。
編程思想:被描述為函數(shù)響應(yīng)式編程(FRP)框架怖糊。
好處:用Rac解決問題 就不需要考慮調(diào)用順序,直接考慮結(jié)果颇象,吧每次操作都寫成一系列嵌套的方法中伍伤,是代碼高聚合、低耦合遣钳。

9扰魂、Mvvm和mvc的優(yōu)缺點?###

兩種模式的目的是為了實現(xiàn)一種動態(tài)的程序設(shè)計蕴茴,簡化后續(xù)對軟件系統(tǒng)的修改和擴展劝评,并使得程序的某一部分的復(fù)用成為可能。
MVC: 三個部分按照其各自的職責劃分:
數(shù)據(jù)Model: 負責封裝數(shù)據(jù)倦淀、存儲和處理數(shù)據(jù)運算等工作
視圖View: 負責數(shù)據(jù)展示蒋畜、監(jiān)聽用戶觸摸等工作
控制器Controller: 負責業(yè)務(wù)邏輯、事件響應(yīng)撞叽、數(shù)據(jù)加工等工作.
在iOS中姻成,M和V之間禁止通信插龄,必須由C控制器層來協(xié)調(diào)M和V之間的變化。如下圖所示佣渴,C對M和V的訪問是不受限的辫狼,但M和V不允許直接接觸控制器層,而是由多種Callbacks(回調(diào))方式來通知控制器.


FBb6RbV.png!web.jpeg

MVC的缺點:
1)辛润、如果業(yè)務(wù)復(fù)雜起來膨处,再加上其他亂七八糟的驗證,controller就會變得很大砂竖,越來越難以維護
MVVM是將“數(shù)據(jù)模型數(shù)據(jù)雙向綁定”的思想作為核心真椿,因此在View和Model之間沒有聯(lián)系,通過ViewModel進行交互乎澄,而且Model和ViewModel之間的交互是雙向的突硝,因此視圖的數(shù)據(jù)的變化會同時修改數(shù)據(jù)源,而數(shù)據(jù)源數(shù)據(jù)的變化也會立即反應(yīng)到View上置济。
關(guān)于MVVM的優(yōu)點:
1)解恰、方便測試
在MVC下,Controller基本是無法測試的浙于,里面混雜了個各種邏輯护盈,而且分散在不同的地方。有了MVVM我們就可以測試里面的viewModel羞酗,來驗證我們的處理結(jié)果對不對(Xcode7的測試已經(jīng)越來越完善了)腐宋。
2)、便于代碼的移植
比如iOS里面有iPhone版本和iPad版本檀轨,除了交互展示不一樣外胸竞,業(yè)務(wù)邏輯的model是一致的。這樣参萄,我們就可以以很小的代價去開發(fā)另一個app卫枝。(以前做公司iPad的時候就深深感覺到,全部在VC里面是多么的痛苦和重新開發(fā)一個沒有啥區(qū)別)拧揽。
3)剃盾、兼容MVC
MVVM是MVC的一個升級版,目前的MVC也可以很快的轉(zhuǎn)換到MVVM這個模式淤袜。VC可以省去一大部分展示邏輯。
缺點:
1)衰伯、類會增多
每個VC都附帶一個viewModel铡羡,類的數(shù)量*2
2)、viewModel會越來越龐大
我們把邏輯給了viewModel意鲸,那勢必Model也會變得很復(fù)雜烦周,里面的屬性和方法越來越多尽爆。可能重寫的方法比較多读慎,因為涉及到一些數(shù)據(jù)的轉(zhuǎn)換以及和controller之間的通信漱贱。
3)、調(diào)用復(fù)雜度增加
由于數(shù)據(jù)都是從viewModel來夭委,想想突然來了一個新人幅狮,一看代碼,不知道真實的模型是誰株灸。比如常用tableview的數(shù)據(jù)源崇摄,一般都是一個數(shù)組,如果不斷的通過viewModel去取慌烧,溝通上沒有那么直接逐抑。況且每封一層,意味著要寫很多代碼去融合他們的轉(zhuǎn)換屹蚊。

10厕氨、內(nèi)存管理?###

MRC :OC內(nèi)存管理遵循“誰創(chuàng)建汹粤,誰釋放命斧,誰引用,誰管理”的機制玄括,當創(chuàng)建或引用一個對象的時候冯丙,需要向她發(fā)送alloc、copy遭京、retain消息胃惜,當 釋放該對象時需要發(fā)送release消息,當對象引用計數(shù)為0時哪雕,系統(tǒng)將釋放該對象船殉,這是OC的手動管理機制(MRC)。
ARC: iOS 5.0之后引用自動管理機制——自動引用計數(shù)(ARC)斯嚎,管理機制與手動機制一樣利虫,只是不再需要調(diào)用retain、release堡僻、 autorelease糠惫;它編譯時的特性,當你使用ARC時钉疫,在適當位置插入release和autorelease硼讽;它引用strong和weak關(guān)鍵 字,strong修飾的指針變量指向?qū)ο髸r牲阁,當指針指向新值或者指針不復(fù)存在固阁,相關(guān)聯(lián)的對象就會自動釋放壤躲,而weak修飾的指針變量指向?qū)ο螅攲ο蟮膿?有者指向新值或者不存在時weak修飾的指針會自動置為nil备燃。
如果使用alloc碉克、copy(mutableCopy)或者retian一個對象時,你就有義務(wù),向它發(fā)送一條release或者autorelease消息。其他方法創(chuàng)建的對象,不需要由你來管理內(nèi)存并齐。
向一個對象發(fā)送一條autorelease消息,這個對象并不會立即銷毀, 而是將這個對象放入了自動釋放池,待池子釋放時,它會向池中每一個對象發(fā)送 一條release消息,以此來釋放對象.
向一個對象發(fā)送release消息,并不意味著這個對象被銷毀了,而是當這個對象的引用計數(shù)為0時,系統(tǒng)才會調(diào)用dealloc方法,釋放該對象和對象本身它所擁有的實例漏麦。

11、oc和swift的優(yōu)缺點冀膝?

12唁奢、cocoaPods 安裝和使用

13、輪播圖的原理窝剖?

14麻掸、推送的原理?

15赐纱、swift最新版本新出特性脊奋?

16、最新iOS9 適配疙描?

17诚隙、項目上線新規(guī)?

18起胰、怎么使用https請求久又?

19、藍牙打印機原理效五?

20地消、人臉識別原理?使用畏妖?

21脉执、視頻直播原理 和使用?

22戒劫、指紋是被的原理和使用

23半夷、蘋果支付的使用?

24迅细、swift閉包強引用造成內(nèi)存泄露怎么解決巫橄?

/*錯誤使用 內(nèi)存泄露
例:
temperatureChange = { newTemperature in
//abs(Int) 返回絕對值
if abs(newTemperature - self.temperature) >= 10 {
print("這個不符合標準")
}else{
self.temperature = newTemperature
print("符合標準")
}
}
/
//解決:
//此處 如果沒有unowned self 意為閉包中self是若引用 self對象肯定存在
/
方法一:
temperatureChange = { [unowned self] newTemperature in
//abs(Int) 返回絕對值
if abs(newTemperature - self.temperature) >= 10 {
print("這個不符合標準")
}else{
self.temperature = newTemperature
print("符合標準")
}
}
*/
//方法二: 此處使用weak 意為弱引用 self對象可能不存在 所以需要判斷self 不為nil
temperatureChange = { [weak self] newTemperature in
if let weakself = self {
//abs(Int) 返回絕對值
if abs(newTemperature - weakself.temperature) >= 10 {
print("這個不符合標準")
}else{
weakself.temperature = newTemperature
print("符合標準")
}
}
}
Demo網(wǎng)址:https://github.com/zhangnianqq/Demos

25、簡述類目category優(yōu)點和缺點茵典。

優(yōu)點:

  • 不需要通過增加子類而增加現(xiàn)有類的行為(方法),且類目中的方法與原始類方法基本沒有區(qū)別;
  • 通過類目可以將龐大一個類的方法進行劃分,從而便于代碼的日后的維護嗦随、更新以及提高代碼的閱讀性;
    缺點:
  • 無法向類目添加實例變量,如果需要添加實例變量,只能通過定義子類的方式;
  • 類目中的方法與原始類以及父類方法相比具有更高優(yōu)先級,如果覆蓋父類的方法,可能導(dǎo)致super消息的斷裂。因此,最好不要覆蓋原始類中的方法敬尺。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末枚尼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子砂吞,更是在濱河造成了極大的恐慌署恍,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜻直,死亡現(xiàn)場離奇詭異盯质,居然都是意外死亡,警方通過查閱死者的電腦和手機概而,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門呼巷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赎瑰,你說我怎么就攤上這事王悍。” “怎么了餐曼?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵压储,是天一觀的道長。 經(jīng)常有香客問我源譬,道長集惋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任踩娘,我火速辦了婚禮刮刑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘养渴。我一直安慰自己雷绢,他們只是感情好,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布厚脉。 她就那樣靜靜地躺著习寸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪傻工。 梳的紋絲不亂的頭發(fā)上霞溪,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機與錄音中捆,去河邊找鬼鸯匹。 笑死,一個胖子當著我的面吹牛泄伪,可吹牛的內(nèi)容都是我干的殴蓬。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼染厅!你這毒婦竟也來了痘绎?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤肖粮,失蹤者是張志新(化名)和其女友劉穎孤页,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體涩馆,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡行施,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了魂那。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蛾号。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖涯雅,靈堂內(nèi)的尸體忽然破棺而出鲜结,到底是詐尸還是另有隱情,我是刑警寧澤斩芭,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布轻腺,位于F島的核電站,受9級特大地震影響划乖,放射性物質(zhì)發(fā)生泄漏贬养。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一琴庵、第九天 我趴在偏房一處隱蔽的房頂上張望误算。 院中可真熱鬧,春花似錦迷殿、人聲如沸儿礼。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蚊夫。三九已至,卻和暖如春懦尝,著一層夾襖步出監(jiān)牢的瞬間知纷,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工陵霉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留琅轧,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓踊挠,卻偏偏與公主長得像乍桂,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

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

  • OC的理解與特性 OC作為一門面向?qū)ο蟮恼Z言睹酌,自然具有面向?qū)ο蟮恼Z言特性:封裝权谁、繼承、多態(tài)忍疾。它既具有靜態(tài)語言的特性...
    克魯?shù)吕?/span>閱讀 449評論 0 0
  • http://www.devstore.cn/essay/essayInfo/6525.html【原文地址】 序言...
    起名好難_fz閱讀 645評論 1 1
  • 序言 目前形勢闯传,參加到iOS隊伍的人是越來越多,甚至已經(jīng)到供過于求了卤妒。今年,找過工作人可能會更深刻地體會到今年的就...
    麥兜兜買兜兜閱讀 676評論 1 4
  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結(jié)起來就是把...
    Dove_iOS閱讀 27,139評論 30 470
  • 來自網(wǎng)絡(luò) 序言 目前形勢字币,參加到iOS隊伍的人是越來越多则披,甚至已經(jīng)到供過于求了。今年洗出,找過工作人可能會更深刻地體會...
    用心在飛閱讀 829評論 5 4