iOS面試手記

1.Block相關(guān)問(wèn)題:

1.Block為什么要用copy

block創(chuàng)建時(shí)默認(rèn)分配內(nèi)存在棧上云矫,不是在堆善涨,作用域?qū)嵲趧?chuàng)建時(shí)的作用域其骄,在作用域外就會(huì)崩潰,所以要拷貝在堆上腊满,在堆上才能使用本地變量

2.Block為什么不用retain

retain只是增加一次計(jì)數(shù)2套么,并沒有把內(nèi)存拷貝到堆上,還是會(huì)被回收

3.為什么進(jìn)入block中的對(duì)象引用計(jì)數(shù)需要自動(dòng)加1

block并不知道對(duì)象什么時(shí)候被釋放碳蛋,所以為了避免在使用block之前對(duì)象就被釋放胚泌,所以block就retain一次

4.Block中self的循環(huán)引用

因?yàn)閎lock需要使用copy到堆區(qū),對(duì)象self就會(huì)被retain一次肃弟,會(huì)造成循環(huán)引用

解決辦法:

在MRC下使用__block,在ARC下玷室,使用__unsafe_unretained\weak修飾

2.@class,#import<> 跟 #import””有什么區(qū)別笤受?
.#import會(huì)鏈入該頭文件的全部信息穷缤,包括實(shí)體變量和方法等;二@class只是告訴編譯器感论,其后面聲明的名稱是類的名稱,至于這些類如何定義的紊册,暫時(shí)不用考慮

.#import<>用來(lái)包含系統(tǒng)自帶的文件比肄,#import""用來(lái)包含自定義的文件

3.frame 和 bounds 有什么不同?

frame指的是:該view在父view坐標(biāo)系統(tǒng)中的位置和大小囊陡。(參照點(diǎn)是父view的坐標(biāo)系統(tǒng))

bounds指的是:該view在本身坐標(biāo)系統(tǒng)中的位置和大小芳绩。(參照點(diǎn)是本身坐標(biāo)系統(tǒng))

4.@property = ivar + getter + setter;

“屬性” (property)有兩大概念:ivar(實(shí)例變量)、getter+setter(存取方法)

5.iOS如何內(nèi)存管理

Objective-C的內(nèi)存管理主要有三種方式ARC(自動(dòng)內(nèi)存計(jì)數(shù))撞反、MRC手動(dòng)內(nèi)存計(jì)數(shù)妥色、內(nèi)存池

1.自動(dòng)內(nèi)存計(jì)數(shù)ARC:由Xcode自動(dòng)在App編譯階段,在代碼中添加內(nèi)存管理代碼遏片。

2.手動(dòng)內(nèi)存計(jì)數(shù)MRC:遵循內(nèi)存誰(shuí)申請(qǐng)嘹害、誰(shuí)釋放;誰(shuí)添加吮便,誰(shuí)釋放的原則笔呀。

3.內(nèi)存釋放池Release Pool:把需要釋放的內(nèi)存統(tǒng)一放在一個(gè)池子中,當(dāng)池子被抽干后(drain)髓需,池子中所有的內(nèi)存空間也被自動(dòng)釋放掉许师。內(nèi)存池的釋放操作分為自動(dòng)和手動(dòng)。自動(dòng)釋放受runloop機(jī)制影響。

6.OC創(chuàng)建線程方法

一共三種:GCD 微渠,NSThread搭幻,NSOperationQueue

7.iOS反射機(jī)制

假設(shè)有一天公司產(chǎn)品要實(shí)現(xiàn)一個(gè)需求:根據(jù)后臺(tái)推送過(guò)來(lái)的數(shù)據(jù),進(jìn)行動(dòng)態(tài)頁(yè)面跳轉(zhuǎn)逞盆,跳轉(zhuǎn)到頁(yè)面后根據(jù)返回到數(shù)據(jù)執(zhí)行對(duì)應(yīng)的操作檀蹋。可以采用反射機(jī)制來(lái)用

反射有三種纳击,類(NSStringFromSelector和NSSelectorFromString)续扔,方法(NSStringFromClass和NSClassFromString),協(xié)議反射(NSStringFromProtocol和NSProtocolFromString)

例如:1.class反射 通過(guò)類名的字符串形式實(shí)例化對(duì)象焕数。 Class class=NSClassFromString(@"student");Student*stu=[[class alloc]init];將類名變?yōu)樽址? Class class=[Student class];NSString*className=NSStringFromClass(class);2.SEL的反射 通過(guò)方法的字符串形式實(shí)例化方法纱昧。 SEL selector=NSSelectorFromString(@"setName");[stu performSelector:selector withObject:@"Mike"];將方法變成字符串。NSStringFromSelector(@selector*(setName:));

8.@public堡赔,@protected识脆,@private,@package 聲明各有什么含義善已?

@public任何地方都能訪問(wèn);@protected該類和子類中訪問(wèn),是默認(rèn)的;@private只能在本類中訪問(wèn);@package 本包內(nèi)使用,跨包不可以灼捂。

9.UIScrollView大概是如何實(shí)現(xiàn)的,它是如何捕捉换团、響應(yīng)手勢(shì)的悉稠?

攔截了touch 事件,如果在150ms中未移動(dòng)艘包,把touch事件傳遞給內(nèi)部view的猛,如果產(chǎn)生移動(dòng),則滾動(dòng)想虎,如果在150ms中未移動(dòng)但是移動(dòng)足夠遠(yuǎn)的話卦尊,且canCancelContentTouches = YES,UIScrollView會(huì)調(diào)用touchesCancelled方法舌厨,cancel掉內(nèi)部view的事件響應(yīng),并開始scrolling

10.常用的設(shè)計(jì)模式

代理岂却,觀察者,單例裙椭,策略躏哩,工廠模式

11.推送的過(guò)程

1.應(yīng)用服務(wù)提供商從服務(wù)器端把要發(fā)送的消息和設(shè)備令牌(device token)發(fā)送給蘋果的消息推送服務(wù)器APNs。

2.APNs根據(jù)設(shè)備令牌在已注冊(cè)的設(shè)備(iPhone揉燃、iPad震庭、iTouch、mac等)查找對(duì)應(yīng)的設(shè)備你雌,將消息發(fā)送給相應(yīng)的設(shè)備器联。

3.客戶端設(shè)備接將接收到的消息傳遞給相應(yīng)的應(yīng)用程序二汛,應(yīng)用程序根據(jù)用戶設(shè)置彈出通知消息。

12.假如Controller太臃腫拨拓,如何優(yōu)化肴颊?

1.將網(wǎng)絡(luò)請(qǐng)求抽象到單獨(dú)的類中,方便處理公共邏輯渣磷,處理緩存婿着,做對(duì)象持久化

2.界面封裝抽象到專門類中,構(gòu)造UIView的子類醋界,負(fù)責(zé)控件拼裝

3.構(gòu)造viewModel竟宋,把vc傳遞給view數(shù)據(jù)的過(guò)程,構(gòu)造成viewmodel

4.專門構(gòu)造存儲(chǔ)類形纺,專門處理本地?cái)?shù)據(jù)存取

5.整合常量

十三.網(wǎng)絡(luò)層如何做安全處理

1.盡量使用https

2.不要傳輸明文密碼

3.post并不比get安全

4.不要使用301跳轉(zhuǎn)丘侠,容易被劫持,一定要使用請(qǐng)確保在http環(huán)境下并且做證書綁定校驗(yàn)

5.http請(qǐng)求帶上MAC

6.http請(qǐng)求使用臨時(shí)密鑰

7.AES使用CBC模式

十五:TCP/IP的三次握手和四次揮手

三次握手:client向server發(fā)送SYN報(bào)文逐样,服務(wù)器接收后發(fā)送SYN+ACK報(bào)文蜗字,客戶端接收到報(bào)文后向服務(wù)器發(fā)送ACK報(bào)文,此時(shí)客戶端進(jìn)入SYN_SENT狀態(tài)脂新,服務(wù)器接收到ACK報(bào)文后服務(wù)器進(jìn)入SYN_RECV狀態(tài)

四次揮手:客戶端向服務(wù)器發(fā)送FIN報(bào)文挪捕,服務(wù)器接收后向付出ACK報(bào)文,客戶端接收ACK報(bào)文后争便,服務(wù)器關(guān)閉連接后悔發(fā)送FIN報(bào)文給客戶端级零,客戶端接收FIN報(bào)文后,向客戶端發(fā)送ACK報(bào)文滞乙,關(guān)閉連接

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末奏纪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子酷宵,更是在濱河造成了極大的恐慌亥贸,老刑警劉巖躬窜,帶你破解...
    沈念sama閱讀 219,188評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件浇垦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡荣挨,警方通過(guò)查閱死者的電腦和手機(jī)男韧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)默垄,“玉大人此虑,你說(shuō)我怎么就攤上這事】诙В” “怎么了朦前?”我有些...
    開封第一講書人閱讀 165,562評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵介杆,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我韭寸,道長(zhǎng)春哨,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評(píng)論 1 295
  • 正文 為了忘掉前任恩伺,我火速辦了婚禮赴背,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘晶渠。我一直安慰自己凰荚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評(píng)論 6 392
  • 文/花漫 我一把揭開白布褒脯。 她就那樣靜靜地躺著便瑟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪憨颠。 梳的紋絲不亂的頭發(fā)上胳徽,一...
    開封第一講書人閱讀 51,708評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音爽彤,去河邊找鬼养盗。 笑死,一個(gè)胖子當(dāng)著我的面吹牛适篙,可吹牛的內(nèi)容都是我干的往核。 我是一名探鬼主播,決...
    沈念sama閱讀 40,430評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼嚷节,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼聂儒!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起硫痰,我...
    開封第一講書人閱讀 39,342評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤衩婚,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后效斑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體非春,經(jīng)...
    沈念sama閱讀 45,801評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評(píng)論 3 337
  • 正文 我和宋清朗相戀三年缓屠,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了奇昙。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,115評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡敌完,死狀恐怖储耐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情滨溉,我是刑警寧澤什湘,帶...
    沈念sama閱讀 35,804評(píng)論 5 346
  • 正文 年R本政府宣布长赞,位于F島的核電站,受9級(jí)特大地震影響闽撤,放射性物質(zhì)發(fā)生泄漏涧卵。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評(píng)論 3 331
  • 文/蒙蒙 一腹尖、第九天 我趴在偏房一處隱蔽的房頂上張望柳恐。 院中可真熱鬧,春花似錦热幔、人聲如沸乐设。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)近尚。三九已至,卻和暖如春场勤,著一層夾襖步出監(jiān)牢的瞬間戈锻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工和媳, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留格遭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,365評(píng)論 3 373
  • 正文 我出身青樓留瞳,卻偏偏與公主長(zhǎng)得像拒迅,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子她倘,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評(píng)論 2 355

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

  • ## iOS常用問(wèn)題總結(jié)#### iOS基礎(chǔ)知識(shí)回顧##### 1璧微、為什么說(shuō)Objective-C是一門動(dòng)態(tài)的語(yǔ)言...
    蟬始鳴閱讀 471評(píng)論 0 3
  • UIKit 1.UIView 和 CALayer 是什么關(guān)系? UIView 繼承 UIResponder硬梁,而 U...
    Sephiroth_Ma閱讀 2,212評(píng)論 0 25
  • 序言 OC的理解與特性 OC作為一門面向?qū)ο蟮恼Z(yǔ)言荧止,自然具有面向?qū)ο蟮恼Z(yǔ)言特性:封裝屹电、繼承、多態(tài)罩息。它既具有靜態(tài)語(yǔ)言...
    跑不動(dòng)的代碼閱讀 786評(píng)論 0 6
  • OC的理解與特性 OC作為一門面向?qū)ο蟮恼Z(yǔ)言嗤详,自然具有面向?qū)ο蟮恼Z(yǔ)言特性:封裝个扰、繼承瓷炮、多態(tài)。它既具有靜態(tài)語(yǔ)言的特性...
    克魯?shù)吕?/span>閱讀 450評(píng)論 0 0
  • 夜鶯2517閱讀 127,720評(píng)論 1 9