1.內(nèi)存管理
2.單例的理解
3.post和get的區(qū)別
4.md5和base64是什么,有什么區(qū)別
5.簡(jiǎn)單談?wù)刄DP和TCP(http和https)
6.談?wù)劧嗑€(xiàn)程吧?你在項(xiàng)目中一般那些地方用到多線(xiàn)程痘绎。gcd有幾種隊(duì)列。
7.設(shè)計(jì)一個(gè)多線(xiàn)程肖粮,分別下載三個(gè)圖片然后再將圖片組合孤页。
8.x=1。線(xiàn)程a:{x++尿赚;}線(xiàn)程b:{x++散庶;}為什么結(jié)果是x=2。
9.現(xiàn)在有一個(gè)資源網(wǎng)址(資源是什么未知)凌净,要請(qǐng)求這個(gè)資源你會(huì)怎么做(你會(huì)考慮哪些東西)悲龟?
10.assign和weak是什么,有什么區(qū)別冰寻?_block和_weak又是什么须教,有什么區(qū)別?(strong,nonatomic斩芭,readonly等)
11.oc語(yǔ)言的三大特點(diǎn)(面向?qū)ο笳Z(yǔ)言的特點(diǎn))轻腺。
12.數(shù)據(jù)庫(kù)。
13.自動(dòng)布局autolayout
14.#import划乖、class和#include的區(qū)別
15.在一個(gè)對(duì)象的方法里面:self.name=“object”;和name= “object”有什么不同贬养。
16.程序和頁(yè)面的生命周期
17.MVC的理解
18.KVC和KVO是什么,有什么區(qū)別
19.深淺復(fù)制的區(qū)別
20.frame 和bounds有什么不同
21.隊(duì)列和棧有什么區(qū)別
22.UIview和CLayer有什么區(qū)別琴庵?
23.類(lèi)別的作用误算?繼承和類(lèi)別在實(shí)現(xiàn)中有何區(qū)別?擴(kuò)展類(lèi)迷殿?
24.tableview的復(fù)用機(jī)制儿礼?
25.程序崩潰通常是因?yàn)樯对颉?/p>
26.有使用instrument么?簡(jiǎn)單談?wù)劙伞?/p>
27.自動(dòng)釋放池是什么庆寺,如何工作的蚊夫。
28.ios數(shù)據(jù)存儲(chǔ)的方式有那些?
29.SDWebImage的原理懦尝。
30.程序性能的優(yōu)化和程序存儲(chǔ)大小的縮減(如何縮減.ipa文件的大兄住)壤圃。
人事
1.簡(jiǎn)單介紹下自己。
2.為什么會(huì)離職琅轧。
3.有什么關(guān)于公司想要了解的埃唯。
=========================================
一、多線(xiàn)程及網(wǎng)絡(luò)相關(guān)的問(wèn)題:
1.多線(xiàn)程的底層實(shí)現(xiàn)鹰晨?
2.線(xiàn)程間怎么通信墨叛?
3.網(wǎng)絡(luò)圖片處理問(wèn)題中怎么解決一個(gè)相同的網(wǎng)絡(luò)地址重復(fù)請(qǐng)求的問(wèn)題?
4.用NSOpertion和NSOpertionQueue處理A,B,C三個(gè)線(xiàn)程,要求執(zhí)行完A,B后才能執(zhí)行C,怎么做模蜡?
5.列舉cocoa中常見(jiàn)對(duì)集中多線(xiàn)程的實(shí)現(xiàn)漠趁,并談?wù)劧嗑€(xiàn)程安全的幾種解決辦法及多線(xiàn)程安全怎么控制?
6.gcd內(nèi)部怎么實(shí)現(xiàn)的
7.你用過(guò)NSOperationQueue么忍疾?如果用過(guò)或者了解的話(huà)闯传,你為什么要使用NSOperationQueue,實(shí)現(xiàn)了什么卤妒?請(qǐng)描述它和GCD的區(qū)別和類(lèi)似的地方(提示:可以從兩者的實(shí)現(xiàn)機(jī)制和適用范圍來(lái)描述)甥绿。
8.既然提到GCD,那么問(wèn)一下在使用GCD以及block時(shí)要注意些什么则披?它們兩是一回事兒么共缕?block在ARC中和傳統(tǒng)的MRC中的行為和用法有沒(méi)有什么區(qū)別,需要注意些什么士复?
9.在異步線(xiàn)程中下載很多圖片,如果失敗了,該如何處理?請(qǐng)結(jié)合RunLoop來(lái)談?wù)劷鉀Q方案.(提示:在異步線(xiàn)程中啟動(dòng)一個(gè)RunLoop重新發(fā)送網(wǎng)絡(luò)請(qǐng)求,下載圖片)
10.Socket的實(shí)現(xiàn)原理及Socket之間是如何通信的
11.http協(xié)議的實(shí)現(xiàn)
二图谷、內(nèi)存管理相關(guān)的問(wèn)題:
1.怎么保證多人開(kāi)發(fā)進(jìn)行內(nèi)存泄露的檢查.
2.非自動(dòng)內(nèi)存管理情況下怎么做單例模式.
3.對(duì)于類(lèi)方法(靜態(tài)方法)默認(rèn)是autoRelease的。我添加的代碼導(dǎo)致了過(guò)渡釋放阱洪。所有類(lèi)方法都會(huì)這樣嗎便贵?
4.block在ARC中和MRC中的用法有什么區(qū)別,需要注意什么
5.什么情況下會(huì)發(fā)生內(nèi)存泄漏和內(nèi)存溢出?
6.[Nsarry array withobject:]這個(gè)方法添加對(duì)象后冗荸,需要對(duì)這個(gè)數(shù)組做釋放操作嗎承璃?
7.Josn數(shù)據(jù)的解析,和解析數(shù)據(jù)的時(shí)候有內(nèi)存泄露嗎蚌本?有的話(huà)如何解決
8.自動(dòng)釋放池底層怎么實(shí)現(xiàn)
三盔粹、C語(yǔ)言和Foundation相關(guān)的問(wèn)題
1.KVO內(nèi)部實(shí)現(xiàn)原理
2.是否可以把比較耗時(shí)的操作方在NSNotificationCenter中
3.Cocoa的Foundation對(duì)象與Core
Foundation對(duì)象有什么區(qū)別
4.不用中間變量,用兩種方法交換A和B的值
5.簡(jiǎn)單描述下對(duì)單利模式設(shè)計(jì)對(duì)理解?
6.什么是動(dòng)態(tài)魂毁,舉例說(shuō)明
7.runtime實(shí)現(xiàn)的機(jī)制是什么,怎么用,一般用于干嘛.你還能記得你所使用的相關(guān)的頭文件或者某些方法的名稱(chēng)嗎玻佩?
8.是否使用過(guò)CoreText或者CoreImage等出嘹?如果使用過(guò)席楚,請(qǐng)談?wù)勀闶褂肅oreText或者CoreImage的體驗(yàn)。
9.NSNotification和KVO的區(qū)別和用法是什么税稼?什么時(shí)候應(yīng)該使用通知烦秩,什么時(shí)候應(yīng)該使用KVO垮斯,它們的實(shí)現(xiàn)上有什么區(qū)別嗎?如果用protocol和delegate(或者delegate的Array)來(lái)實(shí)現(xiàn)類(lèi)似的功能可能嗎只祠?如果可能兜蠕,會(huì)有什么潛在的問(wèn)題?如果不能抛寝,為什么熊杨?(雖然protocol和delegate這種東西面試已經(jīng)面爛了…)
10.Block內(nèi)部的實(shí)現(xiàn)原理
11.有兩個(gè)數(shù)組a,b,大小都為n,數(shù)組元素的值任意盗舰,無(wú)序晶府;
要求:通過(guò)交換a,b中的元素,使數(shù)組a元素的和與數(shù)組b元素的和之間的差最小
四钻趋、數(shù)據(jù)存儲(chǔ)相關(guān)的問(wèn)題
1.如果后期需要增加數(shù)據(jù)庫(kù)中的字段怎么實(shí)現(xiàn)川陆,如果不實(shí)用核心數(shù)據(jù)呢?
2.SQLite數(shù)據(jù)存儲(chǔ)是怎么用蛮位?
3.簡(jiǎn)單描述下客戶(hù)端到緩存機(jī)制较沪?
4.你實(shí)現(xiàn)過(guò)多線(xiàn)程的Core Data么?NSPersistentStoreCoordinator失仁,NSManagedObjectContext和NSManagedObject中的哪些需要在線(xiàn)程中創(chuàng)建或者傳遞尸曼?你是用什么樣的策略來(lái)實(shí)現(xiàn)的?
5.coredata數(shù)據(jù)遷移
五萄焦、UI控件相關(guān)的問(wèn)題
1.怎么解決緩存池滿(mǎn)的問(wèn)題骡苞,(cell)
2.CAAnimation的層級(jí)結(jié)構(gòu)
3.UIButton與UITableView的層級(jí)結(jié)構(gòu)
4.如何渲染自定義格式字符串的UILable
5.設(shè)置scroll view的contensize能在Viewdidload里設(shè)置么,為什么
6.按鈕或者其它UIView控件的事件傳遞的具體過(guò)程
7.控制器View的生命周期及相關(guān)函數(shù)是什么?你在開(kāi)發(fā)中是如何用的楷扬?
六解幽、應(yīng)用程序相關(guān)的問(wèn)題
1.NSRunLoop的實(shí)現(xiàn)機(jī)制,及在多線(xiàn)程中如何使用
2.IOS7之前,后臺(tái)執(zhí)行內(nèi)容有幾種形式,都是什么
3.簡(jiǎn)單說(shuō)一下APP的啟動(dòng)過(guò)程,從main文件開(kāi)始說(shuō)起
4.把程序自己關(guān)掉和程序進(jìn)入后臺(tái),遠(yuǎn)程推送的區(qū)別
5.本地通知和遠(yuǎn)程推送通知對(duì)基本概念和用法?
七烘苹、第三方框架相關(guān)的問(wèn)題
1.第三方API是怎么用的躲株?
2.列舉現(xiàn)在熟悉iOS開(kāi)發(fā)庫(kù)和第三方開(kāi)發(fā)庫(kù)?
八镣衡、其它相關(guān)的問(wèn)題
1.客戶(hù)端安全性處理方式霜定?
2.簡(jiǎn)單描述下社交行為到步足?
3.sip是什么廊鸥?
4.數(shù)據(jù)比較大的時(shí)候是用內(nèi)循環(huán)望浩,還是外循壞?
5.有些圖片加載的比較慢怎么處理?你是怎么優(yōu)化程序的性能的?
6.你實(shí)現(xiàn)過(guò)一個(gè)框架或者庫(kù)以供別人使用么惰说?如果有磨德,請(qǐng)談一談構(gòu)建框架或者庫(kù)時(shí)候的經(jīng)驗(yàn);如果沒(méi)有,請(qǐng)?jiān)O(shè)想和設(shè)計(jì)框架的public的API典挑,并指出大概需要如何做酥宴、需要注意一些什么方面,來(lái)使別人容易地使用你的框架您觉。
7.App需要加載超大量的數(shù)據(jù)給服務(wù)器發(fā)送請(qǐng)求拙寡,但是服務(wù)器卡住了如何解決?
8.利用NSNotificationCenter實(shí)現(xiàn)跨多控制器傳輸數(shù)據(jù)和消息中用同步還是異步琳水?
9.如何編寫(xiě)xml
10.什么時(shí)候該使用通知肆糕,什么時(shí)候該使用KVO,如果用delegate來(lái)實(shí)現(xiàn)類(lèi)似功能可以嗎
11.地圖導(dǎo)航不能用了怎么辦
12.SDWebImage具體如何實(shí)現(xiàn)
13.AFN與ASI有什么區(qū)別
14.你在實(shí)際開(kāi)發(fā)中在孝,有哪些手機(jī)架構(gòu)與性能調(diào)試經(jīng)驗(yàn)
15.runloop定時(shí)源和輸入源
16.你們項(xiàng)目中都用了哪些框架,及何種開(kāi)發(fā)工具,具體到是哪個(gè)版本,這個(gè)版本的特性有哪些???(比如xcode的版本)
17.自己怎么實(shí)現(xiàn)原子鎖
18.運(yùn)行時(shí)的內(nèi)部實(shí)現(xiàn)
19.即時(shí)通訊中的大數(shù)據(jù)處理
20.json解析的具體實(shí)現(xiàn)
21.runtime機(jī)制下擎宝,當(dāng)碰到多層嵌套而且數(shù)據(jù)有空值時(shí),怎樣防止錯(cuò)誤
22.還有一個(gè)問(wèn)題,就是如果在網(wǎng)絡(luò)數(shù)據(jù)處理過(guò)程中,發(fā)現(xiàn)一處比較卡,一般怎么解決
23.怎么介紹一個(gè)項(xiàng)目
24.怎么解決sqlite鎖定的問(wèn)題啊
25.AFN框架里面判斷WIFI和有無(wú)網(wǎng)絡(luò)的那4種情況浑玛。問(wèn)我他實(shí)現(xiàn)的原理是什么
======================================
1绍申、簡(jiǎn)述一下UIViewController的生命周期?
2顾彰、#import和#include的區(qū)別极阅?
3、寫(xiě)一個(gè)計(jì)算A涨享、B中較大值的標(biāo)準(zhǔn)宏MAX筋搏?
4、談一下iOS中的多線(xiàn)程厕隧?
5奔脐、談一下Objective-C的內(nèi)存管理方式?
6吁讨、簡(jiǎn)述assign髓迎、retain、copy建丧、weak和strong分別在什么情況下使用排龄?
7、類(lèi)別的作用翎朱?說(shuō)一下類(lèi)別和類(lèi)擴(kuò)展的區(qū)別橄维?
8、說(shuō)說(shuō)你對(duì)KVC和KVO的理解拴曲?
9争舞、深復(fù)制和淺復(fù)制的區(qū)別?
10澈灼、談一下你對(duì)block的理解竞川,請(qǐng)寫(xiě)一個(gè)block類(lèi)型的屬性操灿?
11搅方、frame和bounds的區(qū)別昔榴?
12黔州、談一下UITableViewCell的重用機(jī)制者疤?
13福澡、簡(jiǎn)述一下消息推送的流程?
14驹马、簡(jiǎn)述一下App發(fā)布到AppStore的流程革砸?
15、談一下面向?qū)ο蟮膸讉€(gè)主要特征糯累?
16算利、談一下你常用的一些設(shè)計(jì)模式及應(yīng)用場(chǎng)景?
17泳姐、談一下關(guān)鍵字static的作用效拭?關(guān)鍵字const呢?
18胖秒、堆和棧的區(qū)別是什么缎患?
19、break阎肝、continue挤渔、return的區(qū)別是什么?
20风题、int *p中*p和p的分別代表什么判导?
21、講一下OC和C有哪些區(qū)別沛硅?
22眼刃、談?wù)勀銓?duì)代理設(shè)計(jì)模式的理解?
23摇肌、談?wù)凥ttp協(xié)議鸟整,其中GET和POST有哪些區(qū)別?
24朦蕴、談?wù)勀銓?duì)MVC開(kāi)發(fā)模式的理解及你是如何在項(xiàng)目中采用MVC模式開(kāi)發(fā)的篮条?
25、談?wù)勀銓?duì)Socket的理解吩抓?TCP和UDP協(xié)議有什么區(qū)別
26涉茧、你常用的數(shù)據(jù)存儲(chǔ)方式有哪些?
27疹娶、通知中心和代理都可以用來(lái)發(fā)送消息和數(shù)據(jù)伴栓,兩者有什么區(qū)別?
28、類(lèi)別和繼承有哪些區(qū)別钳垮?
29惑淳、你在項(xiàng)目當(dāng)中是如何進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求的?
30饺窿、你有做過(guò)iPhone6的屏幕適配嗎歧焦?在項(xiàng)目中你是如何進(jìn)行適配的?
=========================================
問(wèn)題陷阱
1肚医、請(qǐng)你做一下自我介紹
2绢馍、你在找工作時(shí),最重要的考慮因素是什么肠套?
3舰涌、你對(duì)我們公司了解多少?你為什么想來(lái)我們公司工作你稚?
4瓷耙、請(qǐng)談?wù)勀愕膬?yōu)點(diǎn)和缺點(diǎn)?
5刁赖、你為什么離開(kāi)上一家公司哺徊?
6、工作中曾面臨的最大困難是什么乾闰?如何解決的落追?
7、你的職業(yè)目標(biāo)是什么涯肩?(短期和長(zhǎng)期)
8轿钠、你是應(yīng)屆生,缺乏經(jīng)驗(yàn)病苗,如何勝任這份工作疗垛?
9、你對(duì)加班的看法硫朦?
10贷腕、你對(duì)薪資的要求?
11咬展、你最擅長(zhǎng)的技術(shù)方向是什么泽裳?談?wù)勀阒白龅捻?xiàng)目?
12破婆、你有什么問(wèn)題要問(wèn)我涮总?
北京中德福林軟件科技有限公司
1、簡(jiǎn)述下蘋(píng)果的開(kāi)發(fā)框架祷舀?
2瀑梗、常用的ios設(shè)計(jì)模式有哪些烹笔?
3、簡(jiǎn)敘述下蘋(píng)果開(kāi)發(fā)者的認(rèn)證過(guò)程抛丽,以及上傳應(yīng)用谤职,怎么供給其他開(kāi)發(fā)者進(jìn)行使用?
4亿鲜、繼承跟類(lèi)別的區(qū)別允蜈,為什么要有類(lèi)別的存在?
5狡门、簡(jiǎn)述下ios6新增的新特性陷寝?
6锅很、簡(jiǎn)述ARC的機(jī)制原理
7其馏、簡(jiǎn)單編寫(xiě)一個(gè)block代理?
8爆安、怎么解決ios5叛复,ios6中橫豎屏的問(wèn)題?
9扔仓、MVC是什么褐奥?有什么特性?為什么在iphone上被廣泛運(yùn)用翘簇?
10撬码、委托是什么?委托的property聲明用什么屬性版保?為什么呜笑?
11、項(xiàng)目使用過(guò)哪些第三方庫(kù)彻犁?
12叫胁、怎么實(shí)現(xiàn)tableView懶加載?
13汞幢、編寫(xiě)一個(gè)singleton的類(lèi)驼鹅?
14、開(kāi)發(fā)過(guò)程中最常見(jiàn)的異常有哪些森篷,列舉幾個(gè)输钩?
藝恩
1、假設(shè)有一個(gè)字符串a(chǎn)abcad仲智,請(qǐng)編寫(xiě)一段程序张足。去掉字符串中不相鄰的重復(fù)字符,即上述字符串處理之后的輸出結(jié)果為:aabcd坎藐。
2为牍、獲取一臺(tái)設(shè)備唯一標(biāo)識(shí)的方法有哪些哼绑?
3、寫(xiě)一個(gè)NSString類(lèi)的實(shí)現(xiàn)碉咆?
愛(ài)卡汽車(chē)
1抖韩、寫(xiě)出以下的NSLog的輸出格式
intNSStringfloat/double
2、[ UIImageimagewithnamed:@”xx.png”];好處壞處疫铜?
3茂浮、這是同步還是異步取得數(shù)據(jù)
ASIHTTPRequest*request=[ ASIHTTPRequestrequestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
4、寫(xiě)一個(gè)委托的interface壳咕。
5席揽、列舉一下你們常用的UI控件
6、如何管理內(nèi)存谓厘?
7幌羞、使用UITableView時(shí)候必須要實(shí)現(xiàn)得幾個(gè)方法?
8竟稳、列舉一下你們用過(guò)的xml或是json接口的樣式属桦?
9、簡(jiǎn)述一下在ios開(kāi)發(fā)中SQLite的使用方法(以文字或是代碼的形式來(lái)敘述)
10他爸、談?wù)勀銓?duì)ios下的多線(xiàn)程開(kāi)發(fā)的理解聂宾。
11、如何設(shè)計(jì)一個(gè)新聞瀏覽诊笤。評(píng)論的app系谐。簡(jiǎn)述一下用到的開(kāi)發(fā)技術(shù),和實(shí)現(xiàn)方式讨跟。
龍宇北騰
1纪他、ios類(lèi)是否可以多繼承,淺復(fù)制和深復(fù)制有什么區(qū)別许赃?
2止喷、堆和棧的區(qū)別?
3混聊、內(nèi)存管理Autorelease弹谁、retain、,copy句喜、assign的set方法和含義预愤?
4、請(qǐng)寫(xiě)出ios組件咳胃,要求不低于20個(gè)植康?
5、寫(xiě)出方法獲取ios內(nèi)存使用情況展懈?
6销睁、ios本地?cái)?shù)據(jù)存儲(chǔ)都有哪幾種方式供璧?
7、在已越獄設(shè)置中ios如何強(qiáng)制信息通知冻记?
北京融易通信息技術(shù)有限公司
1睡毒、NSArray與NSMutableArray的區(qū)別,多線(xiàn)程操作哪個(gè)更安全冗栗?
2演顾、copy和retain有什么區(qū)別?那么原子(atomic)和非原子(nonatomic)屬性又有什么區(qū)別
3隅居、選擇一種iOS常用的設(shè)計(jì)模式钠至,并作簡(jiǎn)要介紹
4、unsigned int和int有什么區(qū)別胎源。假設(shè)int長(zhǎng)度為65535棉钧,請(qǐng)寫(xiě)出unsigned
int與int的取值范圍
5、介紹一下iOS sandbox的層級(jí)結(jié)構(gòu)乒融,我們經(jīng)常使用到的NSUserDefauits它的保存路徑是什么掰盘?
6摄悯、描述UIButton和UITableView的層級(jí)結(jié)構(gòu)(即該類(lèi)的父類(lèi)父類(lèi)的父類(lèi))
7赞季、解釋MyClass * object1 = [[[MyClass alloc] init [object2hello]autorelease]
8、能否了解過(guò)category的實(shí)現(xiàn)原理奢驯,為什么category只能為對(duì)象增加成員變量
編程題:
9申钩、使用Delegate或者Block實(shí)現(xiàn)類(lèi)之間的通訊
10、當(dāng)前有一個(gè)數(shù)組瘪阁,里面有若干重復(fù)的數(shù)據(jù)撒遣,如何除去重復(fù)的數(shù)據(jù)
鳳凰網(wǎng)真實(shí)面試題
1、關(guān)鍵字volatile有什么含義管跺?并給出三個(gè)不同的例子
2义黎、簡(jiǎn)述static關(guān)鍵字的作用
3、#import和#include的區(qū)別@class呢
4豁跑、線(xiàn)程和進(jìn)程的區(qū)別和聯(lián)系
5廉涕、簡(jiǎn)述堆和棧的區(qū)別
6、簡(jiǎn)述Objective - c內(nèi)存管理
7艇拍、為什么內(nèi)置類(lèi)如UITableVIewController的delegate屬性都是assign狐蜕?
8、定義屬性時(shí)卸夕,什么情況適用copy assign和retain
9层释、對(duì)象在什么時(shí)候被release
10、iPhone OS有沒(méi)有垃圾回收機(jī)制
11快集、ViewController的loadView贡羔、viewDidLoad廉白、viewDidUnLoad分別是在什么時(shí)候調(diào)用?自定義ViewController的時(shí)候這幾個(gè)函數(shù)在里面做什么
12乖寒、ViewColntroller的didRectiveMemoryWarning是在什么時(shí)候被調(diào)用蒙秒?默認(rèn)操作是什么
13、列舉Cocoa中長(zhǎng)用得幾種多線(xiàn)程實(shí)現(xiàn)宵统,并談?wù)劙踩詥?wèn)題的幾種方案晕讲,什么地方會(huì)用到多線(xiàn)程
14、你是怎么理解MVC的马澈, 在Cocoa中MVC是怎么實(shí)現(xiàn)的
15瓢省、用預(yù)處理指令#define生命一個(gè)常數(shù)沒(méi)用你表明一年有多少秒
16、Objecative—有多重繼承么痊班?不是的話(huà)有什么替代方法
17勤婚、關(guān)鍵字const有什么含義
汽車(chē)之家真實(shí)面試題
1、請(qǐng)寫(xiě)出以下代碼的執(zhí)行結(jié)果:
NSString * name =[[NSString alloc] init];
name = @“ Habb ”;
[name release];
2涤伐、異常通常有哪些方式馒胆?
3、id是什么類(lèi)型凝果?何時(shí)使用祝迂?
4、委托的概念是什么
5器净、繼承可以有多個(gè)parent么型雳?
6、isKingOfClass與isMemberOfClass以及selector作用分別是什么
7山害、7纠俭、@class和#import的區(qū)別是什么
8、object c中有私有方法定義么浪慌?
9冤荆、category的作用是什么?
10权纤、iOS應(yīng)用開(kāi)發(fā)中常用的UI控件有哪些钓简?
11、使用宏應(yīng)該注意哪些問(wèn)題妖碉?
12涌庭、堆和棧的區(qū)別是什么?
13欧宜、說(shuō)說(shuō)你對(duì)retain坐榆、copy、strong冗茸、assign的理解
14席镀、dealloc匹中、release、autorelease的區(qū)別是什么豪诲?簡(jiǎn)述它們是如何工作的顶捷?
15、UIViewVontroller的didRectlveMemoryWarning是在什么時(shí)候被調(diào)用
16屎篱、protocal是什么服赎?如何使用?
17交播、說(shuō)說(shuō)你對(duì)線(xiàn)程的理解重虑?
18、說(shuō)說(shuō)你對(duì)MVC的理解秦士?
杉德面試題
1缺厉、iOS允許最近本地通知數(shù)最大是多少
A.16B.32C.64D.128
2、int sum =0 ;
for ( int i= 0 , i < 5,I ++){
for( int j = 0, j < 3, j++){
sum = i + j ;
}
}
請(qǐng)問(wèn)sum等于多少
A.3B.4C.5D.6
3隧土、iOS自動(dòng)布局首先出現(xiàn)在哪個(gè)iOS系統(tǒng)中提针?
A.iOS4.0B.iOS5.0
C.iOS6.0D.iOS7.0
4、讓一個(gè)UIView刷新的方法是
A.setNeedsDisplayB.drawPect
C.loadViewD.initWithFrame
5曹傀、objective—C中category是什么
A.類(lèi)目B.協(xié)議
C.延展D.代理
6辐脖、int m =0; int n = m++; m= n ++,請(qǐng)問(wèn)m的結(jié)果是什么
A.0B.1C.2D.3
7卖毁、要實(shí)現(xiàn)自定義對(duì)象的歸檔必須實(shí)現(xiàn)的協(xié)議是
A.NSCopyingB.NSCoding
8揖曾、指出深拷貝和淺拷貝的區(qū)別
9落萎、指出protocal和notification的區(qū)別和使用方式
10亥啦、Objective—C的內(nèi)存管理機(jī)制
11、纖細(xì)說(shuō)明kvc和kvo的區(qū)別和在什么情況下使用
12练链、什么是UITableView的重用機(jī)制
13翔脱、有一個(gè)序列M,如何判斷其中是否有兩個(gè)元素A媒鼓、B的和為K届吁?如何判斷三個(gè)元素A、B绿鸣、C的和為K
高德面試題
1疚沐、簡(jiǎn)述Object-C的內(nèi)存管理方式及過(guò)程(非ARC)?
2潮模、什么時(shí)候需要在程序中創(chuàng)建內(nèi)存池(autorelease
pool)亮蛔?
3、寫(xiě)一個(gè)setter方法用于完成@property(nonatomic,retain)NSString*name;
a)寫(xiě)一個(gè)setter方法用于完成@property(nonatomic,copy)NSString*name?
4擎厢、什么時(shí)候使用NSMutableArray究流,什么時(shí)候使用NSArray辣吃?他們的線(xiàn)程安全性如何?
5芬探、簡(jiǎn)述#import與#include的區(qū)別神得,@class呢?
6偷仿、簡(jiǎn)述繼承和類(lèi)別(categories)的區(qū)別哩簿?
7、什么是KVO和KVC酝静?
8卡骂、什么事lazy loading?有什么地方用到了形入?
9全跨、你經(jīng)常使用類(lèi)NSObject的哪些方法?
10亿遂、寫(xiě)出獲取單例(Singleton)的類(lèi)方法浓若,考慮多線(xiàn)程的問(wèn)題?
11蛇数、用object-c寫(xiě)一個(gè)冒泡排序函數(shù)挪钓,輸入為一個(gè)儲(chǔ)存NSNumber的可變數(shù)組,輸出void耳舅?
快約真實(shí)面試題
1碌上、OOP設(shè)計(jì)遵循什么樣的原則
2、例舉一些你擅長(zhǎng)的設(shè)計(jì)模式
3浦徊、介紹一下你最擅長(zhǎng)的設(shè)計(jì)模式
4馏予、了解過(guò)哪些UML圖
5、如果設(shè)計(jì)一個(gè)交易平臺(tái)盔性,流程如下:A用戶(hù)在平臺(tái)P發(fā)現(xiàn)B用戶(hù)有東西出售霞丧,P平臺(tái)的業(yè)務(wù)邏輯是需要A先付款到P得中間賬戶(hù),等到A確認(rèn)收貨后冕香,P向B付款蛹尝,你能?chē)L試某種表示方式來(lái)讓程序員,產(chǎn)品設(shè)計(jì)悉尾,美術(shù)設(shè)計(jì)明白這個(gè)流程么突那?
6、你最常用的設(shè)設(shè)計(jì)模式有哪些构眯?
7愕难、OC中如何實(shí)現(xiàn)繼承
8、OC是否有指針的概念
9、NS/CF/CG/CA/UI這些前綴分別是什么含義
10务漩、OC中最常用的類(lèi)拄衰,時(shí)間,UI元素饵骨,庫(kù)翘悉,以及第三方庫(kù)?
11居触、如果你來(lái)指導(dǎo)新人入手OC的學(xué)習(xí)妖混,你會(huì)如何讓劃分學(xué)習(xí)路徑?
12、從其他語(yǔ)言轉(zhuǎn)向OC開(kāi)發(fā),需要有哪些適應(yīng)萍聊?
13、如何實(shí)現(xiàn)一個(gè)布局祥楣?以及嵌套布局?
14汉柒、如何實(shí)現(xiàn)多層UI误褪?
15、OC中有哪些事件
16碾褂、動(dòng)畫(huà)如何實(shí)現(xiàn)兽间?如果自己實(shí)現(xiàn)動(dòng)畫(huà),該如何考慮
17正塌、OC中如何做內(nèi)存管理嘀略?何時(shí)需要手動(dòng)管理
18、如果A引用B1乓诽,B1引用C1帜羊,然后B2也引用C1,現(xiàn)在B1釋放了C1如何做到B2也自動(dòng)釋放C1
19问裕、有哪些實(shí)現(xiàn)多線(xiàn)程的方式逮壁?有哪些庫(kù)?
20粮宛、多線(xiàn)程沖突如何解決
21、iOS運(yùn)行時(shí)至少運(yùn)行了幾種線(xiàn)程卖宠?分別是什么
22巍杈、OC中異步使用的哪種事件模型
23、聊聊iOS中異步實(shí)現(xiàn)機(jī)制
24扛伍、如何指定使用哪個(gè)函數(shù)來(lái)處理異步結(jié)果
25筷畦、iOS的核心是什么
26、為什么MVC與PC不一樣?有哪些不一樣鳖宾?
27吼砂、你認(rèn)為iOS開(kāi)發(fā)和Android開(kāi)發(fā)有什么相通之處?為什么鼎文?
28渔肩、iOS中包含哪些信息?
29拇惋、Xcode調(diào)試時(shí)如何及時(shí)產(chǎn)看表達(dá)式的值
30周偎、清告訴你的客戶(hù)為什么要升級(jí)到iOS7
31、介紹一下你最常用的數(shù)據(jù)結(jié)構(gòu)
32撑帖、計(jì)算過(guò)程最重要的信息是什么蓉坎?
33、iOS對(duì)網(wǎng)絡(luò)的定義中胡嘿,分了幾層蛉艾?分別是哪幾層?
34衷敌、訪(fǎng)問(wèn)方法GET和POST的區(qū)別是什么伺通?
35、HTTP頭是什么樣子的逢享?其中有哪些信息罐监?哪些信息是必須的?
36瞒爬、客戶(hù)端渡河將二進(jìn)制數(shù)據(jù)傳送給服務(wù)器
37弓柱、以前的項(xiàng)目如何保證安全
38、在客戶(hù)端與服務(wù)器端結(jié)合開(kāi)發(fā)的整合系統(tǒng)中侧但,客戶(hù)端與服務(wù)器端分貝適合做什么矢空?客戶(hù)端不能做什么?
39禀横、HTTP與HTTPS過(guò)程分別是什么樣子屁药?有何異同
40、你在工作過(guò)程中柏锄,覺(jué)得最重要的能力有哪些酿箭?怎么獲得這些能力
41、能否告訴我們你對(duì)自己的未來(lái)是如何規(guī)劃的趾娃?現(xiàn)階段你學(xué)要什么缭嫡?
42、在校期間學(xué)習(xí)了哪些專(zhuān)業(yè)課程抬闷?
43妇蛀、如何學(xué)習(xí)耕突,聊聊你在學(xué)習(xí)方面的習(xí)慣
44、如何解決問(wèn)題评架?
45眷茁、在校期間哪些課程學(xué)的比較好?
46纵诞、告訴我們上祈,你常活躍的社區(qū)挣磨,賬號(hào)
47雇逞、為什么離開(kāi)上家公司?為什么是現(xiàn)在離開(kāi)茁裙?
48塘砸、聊聊最精彩的實(shí)現(xiàn)實(shí)例
49、談?wù)勔郧白钕矚g的同事
50晤锥、薪資要求
51掉蔬、我們的問(wèn)題雖多,但還是不能全面挖掘你的潛力矾瘾。能否聊聊哪些方面比較擅長(zhǎng)女轿?我們沒(méi)有問(wèn)到的?
終端中心面試題目
1壕翩、有一個(gè)老板類(lèi)boss類(lèi)蛉迹,一個(gè)助理類(lèi)assistant類(lèi),讓助理實(shí)現(xiàn)發(fā)工資方法payOff()放妈,在第三個(gè)類(lèi)user類(lèi)里調(diào)用(delegate實(shí)現(xiàn))
2北救、2.@interfaceViewController:UIViewController
{
NSData*_c;
}
@property(nonatomic,retain)NSData *a;
@property(nonatomic,copy)NSData *b;
@property(nonatomic,copy)NSData *c;
@implementation ViewController
@synthesize a;
@synthesize b;
@synthesize c = _c;
-(void)viewDidLoad
{
[super viewDidLoad];
NSData *e = [[NSData alloc]init];
NSData *d;
self.a = 0;
self.b = 0;
d = 0;
_c = 0;
self.c = 0;
NSLog(@“count====%d”,[e reatinCount]);
}
retainCount值是多少?
3芜抒、簡(jiǎn)述delegate珍策,KVO,NSNotification區(qū)別宅倒?
4攘宙、IOS動(dòng)畫(huà)處理如何做出彈性效果?
5拐迁、IOS中類(lèi)方法的好處蹭劈?
6、請(qǐng)寫(xiě)出結(jié)果
void main()
{
int a[5] = {1,2,3,4,5};
int *ptr = (int *)(&a+1);
printf(“%d,%d\n\n”,*(a+3),*(ptr-2));
}
7唠亚、用指針?lè)椒▽⒆址癱arsmart123456”對(duì)調(diào)顯示
珍品網(wǎng)面試題
1链方、求以下程序段的輸出
int func(int x)
{
int countx = 0;
while(x){
countx++;
x=x&(x-1);
}
return counts;
}
int main(int argc,constchar*argv[])
{
@autoreleasepool{
NSLog(@“%d”,func(2013));
}
return 0;
}
2、什么時(shí)候使用NSMutableArray灶搜,什么時(shí)候使用NSArray?
3、你所了解的單例有哪些割卖?請(qǐng)寫(xiě)一個(gè)單例的示例代碼前酿?
4、請(qǐng)寫(xiě)出使用委托(代理)的示例代碼鹏溯?
5罢维、寫(xiě)出控制器加載視圖的常規(guī)調(diào)用方法流程?
6丙挽、Objective-C有多繼承么肺孵?不是的話(huà),如何解決颜阐?
7平窘、請(qǐng)寫(xiě)出下面代碼的打印結(jié)果(默認(rèn)在32位機(jī)器下運(yùn)行)
char a[] = “hello world”;
char *p = a;
NSLog(@“%ld”,sizeof(a));
NSLog(@“%ld”,sizeof(p));
如果在64位機(jī)器上運(yùn)行
8、檢查如下代碼是否有問(wèn)題凳怨,如果有問(wèn)題瑰艘,正確的寫(xiě)法是?
-(void)setTarget:(NSObject*)target
{
self.target = target;
}
9肤舞、指出下面代碼的問(wèn)題
-(void)willEndStepOne:(NSObject*)userInfo
{
[NSThreaddetachNewThreadSelector:@selector(doSomeThing:)toTatget:selfwithObject:userInfo];
}
-(void)doSomeThing:(NSObject*)userInfo
{
int max_loop_times = 999999;
for(int i=0,i
int randNum = rand();
NSString *tmpString =[NSString stringWithFormat:@“%d”,randNum];
NSLog(@%@“,tmpString);
}
}
10紫新、談?wù)剬?duì)Block的理解?并寫(xiě)出一個(gè)使用Block執(zhí)行UIView動(dòng)畫(huà)李剖?([UIView
transitionWithView:duration:animations:completion:]芒率;)
11、做過(guò)的項(xiàng)目是否涉及網(wǎng)絡(luò)訪(fǎng)問(wèn)功能篙顺,使用什么對(duì)象完成網(wǎng)絡(luò)功能偶芍?
12、簡(jiǎn)單介紹下NSURLConnection類(lèi)及+sendS也能長(zhǎng)榮歐式Request:returningRespinse:error:與-initWithRequest:delegate:兩個(gè)方法的區(qū)別慰安?
13腋寨、在iPhone應(yīng)用中如何保存數(shù)據(jù)?
北京銀達(dá)面試題
1化焕、截止到2012年1月萄窜,iPhone手機(jī)所使用的操作系統(tǒng)最新版本是多少?
A .4.2B. 4.3C. 5.0D.5.0.1
2撒桨、以下設(shè)備中查刻,iPhone軟件開(kāi)發(fā)一般不會(huì)涉及的是?
iPhoneB.iPod touchC.ThinkpadD.iPad
3凤类、在一個(gè)最常見(jiàn)的Xcode工程中穗泵,通常不會(huì)出現(xiàn)的文件擴(kuò)展名是?
A.PNGB.XIBC.MD.CPP
4谜疤、曹某在Interface Builder中繪制了一個(gè)按鈕佃延,并想在代碼中修改這個(gè)按鈕上的文字现诀,一般是通過(guò)什么方式讓代碼與界面中的按鈕建立聯(lián)系的?
A.OutletB.ActionC.EventD.Build
5履肃、客戶(hù)有一份聯(lián)系人名單仔沿,是聯(lián)系人姓名和電話(huà)的對(duì)應(yīng)關(guān)系,需要從遠(yuǎn)程服務(wù)器動(dòng)態(tài)獲取尺棋,并在內(nèi)存中暫存封锉,以供界面調(diào)用,以下數(shù)據(jù)結(jié)構(gòu)中適合此要求的是膘螟?
A.DictionaryB.HashMapC.NSMutableURLRequestD.NSDictionary
6成福、iPhone應(yīng)用可以相應(yīng)用戶(hù)旋轉(zhuǎn)手機(jī)屏幕的操作,并根據(jù)當(dāng)前手機(jī)所處的方向來(lái)決定內(nèi)容如何顯示荆残,請(qǐng)問(wèn)表示iPhone手機(jī)默認(rèn)朝向的時(shí)以下哪種代碼奴艾?
A.UIInterfaceOrientationPortralt
B.UIInterfaceOrientationPortraltUpsideDown
C.UIInterfaceOrientationLandscapeLeft
D.UIInterfaceOrientationLandscapeRight
7、曹某在自己的業(yè)務(wù)類(lèi)中寫(xiě)了一個(gè)方法脊阴,能動(dòng)態(tài)創(chuàng)建一個(gè)NSObject對(duì)象的實(shí)例objA握侧,并以其作為方法的返回值。但應(yīng)用在調(diào)試過(guò)程中總是發(fā)生內(nèi)存泄露嘿期,經(jīng)跟蹤是這個(gè)方法出了問(wèn)題品擎。請(qǐng)問(wèn)曹某再次方法中漏寫(xiě)了什么。
A.[objA release];B.[objA alloc];C.[objA autorelease];D.[objAretain];
曹某謝了一個(gè)金融應(yīng)用备徐,由于金融交易過(guò)程較為敏感不適合被中途打斷萄传,此外客戶(hù)的手機(jī)同時(shí)還運(yùn)行著其他重要的應(yīng)用,他決定讓自己的應(yīng)用盡可能的減小不必要的資源占用蜜猾。請(qǐng)?jiān)嚮卮鹨幌聠?wèn)題秀菱。
8、曹某在自己的手機(jī)上調(diào)試此應(yīng)用時(shí)蹭睡,發(fā)現(xiàn)程序代碼收到了系統(tǒng)方法來(lái)的內(nèi)存警告事件衍菱,他應(yīng)該在didReceiveMemoryWarning方法中實(shí)現(xiàn)的操作室?
A.清理當(dāng)前所有狀態(tài)信息肩豁,并退回登陸界面
B.顯示對(duì)話(huà)框以提醒使用者
C.將此情況通知遠(yuǎn)程服務(wù)器進(jìn)行記錄
D.以上皆非
9脊串、客戶(hù)要求此應(yīng)用一直駐留后臺(tái),定時(shí)從遠(yuǎn)程服務(wù)器獲取最新數(shù)據(jù)清钥,在允許違反官方應(yīng)用設(shè)計(jì)規(guī)范的前提下琼锋,不能實(shí)現(xiàn)此要求的方法是?
A.實(shí)現(xiàn)后臺(tái)位置服務(wù)接口
B.實(shí)現(xiàn)VoIP接口
C.實(shí)現(xiàn)音樂(lè)播放器接口
D.實(shí)現(xiàn)后臺(tái)延時(shí)任務(wù)接口
10祟昭、客戶(hù)修改了需求缕坎,要求按home鍵退出應(yīng)用之后,下次再進(jìn)入時(shí)不保留上次應(yīng)用所處的狀態(tài)篡悟,直接回到初始界面谜叹,要實(shí)現(xiàn)此功能最好的方法是匾寝?
A.響應(yīng)系統(tǒng)發(fā)出的applicationDidEnterBackground事件,并清理所有狀態(tài)信息
B.相應(yīng)系統(tǒng)發(fā)出的applicationWillEnterForeground事件叉谜,并清理所有狀態(tài)信息
C.相應(yīng)系統(tǒng)發(fā)出的applicationWillTerminate事件旗吁,并清理所有狀態(tài)信息
D.修改應(yīng)用plist踩萎,放棄多任務(wù)支持
11停局、簡(jiǎn)答題二選一:
使用TabBarController和NavigationController實(shí)現(xiàn)一個(gè)iPhone基本應(yīng)用的界面,請(qǐng)簡(jiǎn)單畫(huà)出根視圖和若干子視圖之間的嵌套關(guān)系香府。
實(shí)現(xiàn)一個(gè)基本的iPad應(yīng)用董栽,請(qǐng)簡(jiǎn)單畫(huà)出根視圖和其他視圖之間的嵌套關(guān)系。
12企孩、簡(jiǎn)答題:請(qǐng)簡(jiǎn)述你所開(kāi)發(fā)的應(yīng)用在過(guò)去某次iPhone系統(tǒng)版本更新后遇到的API兼容問(wèn)題锭碳,以及時(shí)如何解決的。
13勿璃、編程題:現(xiàn)有一個(gè)控制器是UITableViewController的子類(lèi)擒抛,其中一個(gè)名叫functions的屬性是包含了tableView個(gè)選項(xiàng)名稱(chēng)的NSArray對(duì)象,另有一個(gè)images屬性是包含了各選項(xiàng)圖片的NSArray對(duì)象补疑。在不考慮復(fù)用UITableViewCell節(jié)省內(nèi)存的前提下歧沪,請(qǐng)實(shí)現(xiàn)其中的如下方法:
-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath*)indexPath
注:UITableViewCell通過(guò)textLable和imageView屬性來(lái)設(shè)置名稱(chēng)和圖片。
搜房網(wǎng)面試題
1莲组、Object-c的類(lèi)可以多重繼承么诊胞?可以實(shí)現(xiàn)多個(gè)接口么?Category是什么锹杈? 重寫(xiě)一個(gè)類(lèi)的時(shí)候是繼承好還是分類(lèi)好撵孤? 為什么 ?
2竭望、#import跟#include有什么區(qū)別#import<>跟#import有什么區(qū)別邪码?
3、類(lèi)變量的@protected咬清,@private闭专,@public,@package聲明各有什么含義枫振?
4喻圃、id聲明的對(duì)象有什么特性?
5粪滤、對(duì)于語(yǔ)句N(xiāo)sstring*testObject=[NSData alloc]init];testObject在編譯時(shí)和運(yùn)行時(shí)…..的對(duì)象斧拍。
6、MVC是什么 杖小?有什么特征肆汹?為什么在iphone上被廣泛運(yùn)用愚墓?
7、什么是安全釋放昂勉?
8浪册、property中屬性retain,copy,assgin的含義分別是什么?有什么區(qū)別岗照?將其轉(zhuǎn)換成get/set方法怎么做村象?有什么注意事項(xiàng)?
-(void)setInstance:(id)instance{
if (_instance != instance) {
[_instance release];
_instance = [instance retain];
}
}
-(void)setInstance:(id)instance{
if (_instance != instance) {
[_instance release];
_instance = [instance copy];
}
}
-(void)setInstance:(id)instance{
if (_instance != instance) {
_instance = instance;
}
}
9攒至、淺拷貝和深拷貝區(qū)別是什么厚者?
10、
for(int index=0迫吐;index<20 index++){
NSString
*tenpStr=@“tempStr”库菲;
NSLog(tempStr);
NSNumber*tempNumber=[NSNumbernumberWithint:2];
NSLog(tempNumber);
}
這段代碼有什么問(wèn)題.志膀?會(huì)不會(huì)造成內(nèi)存泄露(多線(xiàn)程)熙宇?在內(nèi)存緊張的設(shè)備上做大循環(huán)時(shí)自動(dòng)釋放池是寫(xiě)在循環(huán)內(nèi)好還是循環(huán)外好?為什么溉浙?烫止?
11、內(nèi)存管理的幾天原則是什么放航?按照默認(rèn)法則烈拒,哪些關(guān)鍵字生成的對(duì)象需要手動(dòng)釋放內(nèi)存的時(shí)候怎樣有效地避免內(nèi)存泄露?
12广鳍、在一個(gè)對(duì)象釋放前.如果他被加到了notificationCenter中.不在notificationcenter中remove這個(gè)對(duì)象可能會(huì)出現(xiàn)什么問(wèn)題荆几?
13、怎樣實(shí)現(xiàn)一個(gè)singleton的類(lèi)赊时,給出思路吨铸。
14、什么是序列化或者Acrchiving祖秒,可以用來(lái)做什么诞吱,怎樣與copy結(jié)合,原理是什么
15竭缝、線(xiàn)程是什么房维? 有什么注意事項(xiàng)?
16抬纸、在iphone上有兩件事情要做,請(qǐng)問(wèn)是在一個(gè)線(xiàn)程里按順序做效率高還是兩個(gè)線(xiàn)程里做效率高咙俩?為什么?.
17、runloop是什么阿趁?在主線(xiàn)程中的某個(gè)函數(shù)里調(diào)用了異步函數(shù)膜蛔,怎么樣block當(dāng)前線(xiàn)程,且還能響應(yīng)當(dāng)前線(xiàn)程的timer事件,touch事件等?
未命名1
1脖阵、打開(kāi)URl到網(wǎng)頁(yè)的代碼
2皂股、判斷字典對(duì)象的元素是否為空
3、以下每行代碼執(zhí)行后命黔,parson對(duì)象的retain count分別是多少
Person * person = [[Person alloc] init ] ;
[person retain];
[personrelseae];
[person release];
4呜呐、ViewController得LoadView,viewDidLoad纷铣,viewDidUnLoad分別是什么時(shí)候調(diào)用的卵史?
5、frame和bounds的區(qū)別
6搜立、寫(xiě)一個(gè)標(biāo)準(zhǔn)的宏MIN,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)槐秧。
7啄踊、你使用過(guò)json解析方式么,它們的底層是如何處理的你了解么刁标?對(duì){}颠通、[]、:等的理解膀懈?
8顿锰、@synthesize
xxx來(lái)實(shí)現(xiàn)實(shí)際代碼
未命名2
1、屬性readwrite启搂,readonly硼控,assign,retain胳赌,copy牢撼,nonatomic各有什么作用,在什么情況下用疑苫?
2熏版、為什么很多內(nèi)置類(lèi)如UITableViewController的delegate屬性都是assign而不是retain的?
3捍掺、Object-c的類(lèi)可以多重繼承么撼短?Category是什么?重寫(xiě)一個(gè)類(lèi)的方式用繼承好還是分類(lèi)好挺勿?為什么曲横?
4、#import跟#include有什么區(qū)別满钟,@class呢胜榔?
5胳喷、談?wù)勀銓?duì)ARC的認(rèn)識(shí)和理解?
6夭织、什么是Notification ?什么時(shí)候用delegate吭露,什么時(shí)候用Notification?
7尊惰、ViewController的loadView讲竿,viewDidLoad,viewDidUnload分別是在什么時(shí)候調(diào)用的弄屡?在自定義ViewController的時(shí)候這幾個(gè)函數(shù)里面應(yīng)該做什么工作题禀?
8、簡(jiǎn)述多線(xiàn)程操作的方法膀捷,以及各個(gè)方法的優(yōu)缺點(diǎn)迈嘹。
9、說(shuō)一說(shuō)對(duì)BLOCK的解釋全庸。使用過(guò)程中需要注意的地方有哪些秀仲?
10、簡(jiǎn)述ios動(dòng)畫(huà)機(jī)制壶笼。
11神僵、簡(jiǎn)述ios數(shù)據(jù)存儲(chǔ)方式。
12覆劈、簡(jiǎn)要介紹常見(jiàn)的第三方框架保礼,以及用途。
13责语、簡(jiǎn)要敘述MVC在ios開(kāi)發(fā)中的應(yīng)用炮障。
14、簡(jiǎn)述常見(jiàn)ios流媒體傳輸協(xié)議鹦筹。
15铝阐、簡(jiǎn)述播放流媒體的常見(jiàn)方法。
16铐拐、如何采集視頻源和音頻源的數(shù)據(jù)徘键?
17、什么是H264編碼遍蟋?什么是AAC編碼吹害?如何實(shí)現(xiàn)?
18虚青、是否了解ffmpeg它呀? 請(qǐng)簡(jiǎn)要敘述ffmpeg的理解
未命名3
1、下面片段代碼中,哪個(gè)選項(xiàng)是正確的初始化纵穿,為什么下隧?有哪些類(lèi)型的初始化需要手動(dòng)去釋放?
@property (nonatomic,retain)NSMutableArray* votelist;//.h文件
@synthesize votelist;//.m文件
a谓媒、self.votelist=[[NSMutableArrayalloc] init];
b淆院、votelist=[[NSMutableArray alloc] init];
2、assign句惯、retain土辩、copy筒严、nonatomic骨宠、readonly屬性的作用
3摔踱、Category與繼承的區(qū)別
4谨履、KVC和KVO是什么?
5孵班、ViewController的viewDidLoad,viewWillAppear,viewDidUnload,dealloc
分別是在什么時(shí)候調(diào)用困肩,在自定義ViewController的中這幾個(gè)函數(shù)里面應(yīng)該做什么工作带族?
6邓厕、聲明一個(gè)類(lèi)和一個(gè)靜態(tài)方法
7逝嚎、TaableView加載網(wǎng)絡(luò)文本,圖片時(shí)要注意什么
8详恼、#import與#imclde的區(qū)別
9、線(xiàn)程與進(jìn)程的區(qū)別和聯(lián)系
10引几、寫(xiě)一個(gè)委托delegate的定義昧互,實(shí)現(xiàn)過(guò)程
未命名4
3、定義int
**a[3][4]伟桅,則變量占有的內(nèi)存空間為:_______
4敞掘、寫(xiě)一個(gè)函數(shù)完成內(nèi)存之間的拷貝
void *mymemcpy( void * dest , const void * src , size_tcount).
5、編寫(xiě)一個(gè)函數(shù)subs(char * str)打印出str的所有子串(例如1234的子串包括:1.2.3.4.12.23.34.123.234.1234.)
6楣铁、完成字符串拷貝可以使用sprintf玖雁、strcpy、以及memcpy函數(shù)盖腕,請(qǐng)問(wèn)這些函數(shù)有什么區(qū)別?你喜歡哪一個(gè)赫冬?為什么?
7溃列、首先編寫(xiě)函數(shù)計(jì)算一個(gè)字節(jié)(byte)里有多少bit被置為1劲厌,例如輸入9即(1001) ,輸出2.然后考慮如果大量重復(fù)調(diào)用此函數(shù)如何優(yōu)化
8听隐、完成下列鏈表類(lèi)
class List{
…………//任意增加類(lèi)成員
public:
//將pNewNode插入到鏈表中补鼻,放在pOldNode的前面
bool InsertBefore(Node * pNewNode,Node *pOldNode);
void Delete(Node * pNode);
}
9、
chass find {
void add(char * tel)风范;
void find(char *
tel)咨跌;
}
//號(hào)碼長(zhǎng)度有11位,有一文件存這10億個(gè)電話(huà)號(hào)碼硼婿,實(shí)現(xiàn)上面find類(lèi)锌半,使下面的程序
f.ind(tel)函數(shù)可以快速的查找任意號(hào)碼是否存在
void main(){
find f;
char * tel;
while(tel = readtel()){??? //從文件中讀出電話(huà)號(hào)碼
f.add(tel);
}
tel = 13512345678;
if (f.find (tel)){
pringf(“找到手機(jī)號(hào)碼%s\n,tel”);
} else {
pringf(“未找到手機(jī)號(hào)碼%s\n,tel”);
}
}
10、怎樣快速檢測(cè)出一個(gè)巨大的鏈表中得死鏈加酵,(遍歷鏈表時(shí)會(huì)循環(huán)的鏈)拳喻?
盡量不改變?cè)墟湵頂?shù)據(jù),考慮好空間復(fù)雜度與時(shí)間復(fù)雜度猪腕。
======================================
以下是我面試過(guò)程中記錄下來(lái)的重點(diǎn)的面試及筆試題冗澈,算是我對(duì)千鋒的一點(diǎn)點(diǎn)感恩致謝,在此感謝恩師的栽培陋葡。
總結(jié)了一下:新浪微博愛(ài)問(wèn)UI亚亲,數(shù)據(jù)緩存應(yīng)用方面的實(shí)現(xiàn),騰訊愛(ài)問(wèn)原理腐缤,坑爹的百度就喜歡拿算法來(lái)得瑟捌归。
面試制勝之招:
1.原理性的知識(shí),必須背下來(lái)岭粤,代碼不需要會(huì)寫(xiě)惜索,沒(méi)人要求寫(xiě)原理、底層的代碼(這是一個(gè)空子剃浇,可以鉆)
2.鏈表操作巾兆,排序算法最好是能默寫(xiě)
3.面試始終保持平靜,冷靜虎囚,鎮(zhèn)靜角塑,面試再刁難也要保持端坐,面帶一絲微笑
4.對(duì)喜歡的公司最好能表現(xiàn)出對(duì)加入目標(biāo)公司的渴望淘讥,對(duì)技術(shù)的追求
5.加分的地方:對(duì)簡(jiǎn)歷上的項(xiàng)目很熟悉圃伶,技術(shù)點(diǎn)都有所研究,包括封裝蒲列,細(xì)節(jié)實(shí)現(xiàn)窒朋;最好能把MJExtension框架多敲幾遍,包裝成自己開(kāi)發(fā)的工具(顯示自己大神的威力)
工作建議:沒(méi)人查個(gè)人背景(這點(diǎn)不用太擔(dān)心嫉嘀,大不了重新找)炼邀;上班后勤勉工作,最好不要泡在QQ上剪侮,不懂趕緊問(wèn)拭宁,別拖延時(shí)間洛退,轉(zhuǎn)正期也是適應(yīng)期多,花點(diǎn)時(shí)間在工作上杰标,工作態(tài)度非常非常重要兵怯。
一.簡(jiǎn)述題
1.堆和棧的內(nèi)存區(qū)別,它們是如何分配和釋放的--必須問(wèn)腔剂,必須背下來(lái)
2.self.與self->區(qū)別--必須問(wèn)媒区,必須背下來(lái)
3.ARC自動(dòng)引用技術(shù)原理,自動(dòng)釋放池什么時(shí)候銷(xiāo)毀(兩次被問(wèn)到掸犬,回答大括號(hào)結(jié)束時(shí)銷(xiāo)毀袜漩,面試官就笑著對(duì)我:“呵呵”。最后問(wèn)了面試官:runloop結(jié)束時(shí)銷(xiāo)毀湾碎,還是沒(méi)弄明白)---騰訊宙攻,百度,新浪微博
4.定義屬性時(shí)nonatomic,atomic,copy,assign,retain內(nèi)部實(shí)現(xiàn)原理---騰訊
5.蘋(píng)果公司為什么要推出strong和weak
6.怎樣實(shí)現(xiàn)一個(gè)singleton,請(qǐng)給出思路(最好直接寫(xiě)出來(lái))—必須問(wèn)介褥,必須背下來(lái)
7.請(qǐng)簡(jiǎn)述KVO內(nèi)部的實(shí)現(xiàn)座掘,使用條件---新浪微博
8.請(qǐng)用代碼描述錯(cuò)誤消息處理---騰訊,百度
9.消息轉(zhuǎn)發(fā)內(nèi)部原理(結(jié)構(gòu)指針柔滔,方法選擇器溢陪,forwarding...一串破玩意兒)--百度
9.iOS消息傳遞機(jī)制都有什么?如何傳遞睛廊?---騰訊形真,百度,新浪微博
10.有網(wǎng)絡(luò)或無(wú)網(wǎng)絡(luò)情況下兩個(gè)APP之間如何通信---新浪微博
11.將UIButton添加到UIView上超全,如果UIButton的frame的(0,0)不在UIView上没酣,UIButton能不能被點(diǎn)擊,為什么卵迂?,UIButton如果被添加到UILabel上绒净,點(diǎn)擊能響應(yīng)嗎见咒?---新浪微博
12.如果每個(gè)View上都想增加一個(gè)時(shí)間播放控件,如何實(shí)現(xiàn)挂疆?---新浪微博
13.利用UIScrollView縮放性改览,如何實(shí)現(xiàn)地圖上商家地理位置的動(dòng)態(tài)顯示---騰訊
14.運(yùn)行時(shí)的工作原理,OC動(dòng)態(tài)行---騰訊缤言,百度宝当,新浪微博
15.AFN與asi的本質(zhì)區(qū)別---騰訊,百度胆萧,新浪微博(主要問(wèn)底層實(shí)現(xiàn))
16.clayer的坐標(biāo)與frame的坐標(biāo)如何轉(zhuǎn)化---騰訊庆揩,百度俐东,新浪微博
17.循環(huán)引用---騰訊,百度订晌,新浪微博
18.runloop原理---騰訊虏辫,百度,新浪微博
二.算法題
1.定義指針函數(shù)實(shí)現(xiàn)數(shù)組排序(百度)
2.實(shí)現(xiàn)一單鏈表的逆轉(zhuǎn)锈拨,排序(DML方面)(騰訊砌庄,百度)
3.已知一組數(shù)字:32,35,9,25,19,34,43,47,3要求按以下規(guī)則進(jìn)行排序:第一個(gè)數(shù)最大,第二個(gè)數(shù)最小奕枢,第三個(gè)數(shù)是剩下中的最大的娄昆,第四個(gè)數(shù)是剩下中的最小的,依此類(lèi)推缝彬。(騰訊)
4.函數(shù)將字符串中的字符'*'移到串的前部分萌焰,前面的非'*'字符后移,但不能改變非'*'字符的先后順序跌造,函數(shù)返回串中字符'*'的數(shù)量杆怕。如原始串為:ab**cd**e*12,處理后為*****abcde12壳贪,函數(shù)并返回值為5,(要求使用盡量少的時(shí)間和輔助空間)(百度)
5.實(shí)現(xiàn)memmove算法(金山網(wǎng)絡(luò))
6.求1+2+3+...+n要求不能使用除法陵珍、for、while违施、if互纯、else、switch磕蒲、case等關(guān)鍵字以及條件判斷語(yǔ)句(A?B:C)(金山網(wǎng)絡(luò))
7.判斷一個(gè)IP的有效性(百度)
=========================================
一留潦、多線(xiàn)程及網(wǎng)絡(luò)相關(guān)的問(wèn)題:
1.多線(xiàn)程的底層實(shí)現(xiàn)?
2.線(xiàn)程間怎么通信辣往?
3.網(wǎng)絡(luò)圖片處理問(wèn)題中怎么解決一個(gè)相同的網(wǎng)絡(luò)地址重復(fù)請(qǐng)求的問(wèn)題兔院?
4.用NSOpertion和NSOpertionQueue處理A,B,C三個(gè)線(xiàn)程,要求執(zhí)行完A,B后才能執(zhí)行C,怎么做?
5.列舉cocoa中常見(jiàn)對(duì)集中多線(xiàn)程的實(shí)現(xiàn)站削,并談?wù)劧嗑€(xiàn)程安全的幾種解決辦法及多線(xiàn)程安全怎么控制坊萝?
6.gcd內(nèi)部怎么實(shí)現(xiàn)的
7.你用過(guò)NSOperationQueue么?如果用過(guò)或者了解的話(huà)许起,你為什么要使用NSOperationQueue十偶,實(shí)現(xiàn)了什么?請(qǐng)描述它和GCD的區(qū)別和類(lèi)似的地方(提示:可以從兩者的實(shí)現(xiàn)機(jī)制和適用范圍來(lái)描述)园细。
8.既然提到GCD惦积,那么問(wèn)一下在使用GCD以及block時(shí)要注意些什么?它們兩是一回事兒么猛频?block在ARC中和傳統(tǒng)的MRC中的行為和用法有沒(méi)有什么區(qū)別狮崩,需要注意些什么蛛勉?
9.在異步線(xiàn)程中下載很多圖片,如果失敗了,該如何處理?請(qǐng)結(jié)合RunLoop來(lái)談?wù)劷鉀Q方案.(提示:在異步線(xiàn)程中啟動(dòng)一個(gè)RunLoop重新發(fā)送網(wǎng)絡(luò)請(qǐng)求,下載圖片)
10. Socket的實(shí)現(xiàn)原理及Socket之間是如何通信的
二、內(nèi)存管理相關(guān)的問(wèn)題:
1.怎么保證多人開(kāi)發(fā)進(jìn)行內(nèi)存泄露的檢查.
2.非自動(dòng)內(nèi)存管理情況下怎么做單例模式.
3.對(duì)于類(lèi)方法(靜態(tài)方法)默認(rèn)是autoRelease的厉亏。我添加的代碼導(dǎo)致了過(guò)渡釋放董习。所有類(lèi)方法都會(huì)這樣嗎?
4._block函數(shù)在arc跟非arc里面有什么區(qū)別
5.什么情況下會(huì)發(fā)生內(nèi)存泄漏和內(nèi)存溢出爱只?
6.[Nsarry array withobject:]這個(gè)方法添加對(duì)象后皿淋,需要對(duì)這個(gè)數(shù)組做釋放操作嗎?
7.Josn數(shù)據(jù)的解析恬试,和解析數(shù)據(jù)的時(shí)候有內(nèi)存泄露嗎窝趣?有的話(huà)如何解決
三、C語(yǔ)言和Foundation相關(guān)的問(wèn)題
1.KVO內(nèi)部實(shí)現(xiàn)原理
2.是否可以把比較耗時(shí)的操作方在NSNotificationCenter中
3.Cocoa的Foundation對(duì)象與Core
Foundation對(duì)象有什么區(qū)別
4.不用中間變量,用兩種方法交換A和B的值
5.簡(jiǎn)單描述下對(duì)單利模式設(shè)計(jì)對(duì)理解训柴?
6.什么是動(dòng)態(tài)哑舒,舉例說(shuō)明
7.runtime實(shí)現(xiàn)的機(jī)制是什么,怎么用,一般用于干嘛.你還能記得你所使用的相關(guān)的頭文件或者某些方法的名稱(chēng)嗎?
8.是否使用過(guò)CoreText或者CoreImage等幻馁?如果使用過(guò)洗鸵,請(qǐng)談?wù)勀闶褂肅oreText或者CoreImage的體驗(yàn)。
9.NSNotification和KVO的區(qū)別和用法是什么仗嗦?什么時(shí)候應(yīng)該使用通知膘滨,什么時(shí)候應(yīng)該使用KVO,它們的實(shí)現(xiàn)上有什么區(qū)別嗎稀拐?如果用protocol和delegate(或者delegate的Array)來(lái)實(shí)現(xiàn)類(lèi)似的功能可能嗎火邓?如果可能,會(huì)有什么潛在的問(wèn)題德撬?如果不能铲咨,為什么?(雖然protocol和delegate這種東西面試已經(jīng)面爛了…)
10.Block內(nèi)部的實(shí)現(xiàn)原理
四蜓洪、數(shù)據(jù)存儲(chǔ)相關(guān)的問(wèn)題
1.如果后期需要增加數(shù)據(jù)庫(kù)中的字段怎么實(shí)現(xiàn)纤勒,如果不實(shí)用核心數(shù)據(jù)呢?
2.SQLite數(shù)據(jù)存儲(chǔ)是怎么用隆檀?
3.簡(jiǎn)單描述下客戶(hù)端到緩存機(jī)制踊东?
4.你實(shí)現(xiàn)過(guò)多線(xiàn)程的Core Data么?NSPersistentStoreCoordinator刚操,NSManagedObjectContext和NSManagedObject中的哪些需要在線(xiàn)程中創(chuàng)建或者傳遞?你是用什么樣的策略來(lái)實(shí)現(xiàn)的再芋?
五菊霜、UI控件相關(guān)的問(wèn)題
1.怎么解決緩存池滿(mǎn)的問(wèn)題,(cell)
2.CAAnimation的層級(jí)結(jié)構(gòu)
3.UIButton與UITableView的層級(jí)結(jié)構(gòu)
4.如何渲染自定義格式字符串的UILable
5.設(shè)置scroll view的contensize能在Viewdidload里設(shè)置么,為什么
6.按鈕或者其它UIView控件的事件傳遞的具體過(guò)程
7.控制器View的生命周期及相關(guān)函數(shù)是什么济赎?你在開(kāi)發(fā)中是如何用的鉴逞?
六记某、應(yīng)用程序相關(guān)的問(wèn)題
1.NSRunLoop的實(shí)現(xiàn)機(jī)制,及在多線(xiàn)程中如何使用
2.IOS7之前,后臺(tái)執(zhí)行內(nèi)容有幾種形式,都是什么
3.簡(jiǎn)單說(shuō)一下APP的啟動(dòng)過(guò)程,從main文件開(kāi)始說(shuō)起
4.把程序自己關(guān)掉和程序進(jìn)入后臺(tái),遠(yuǎn)程推送的區(qū)別
5.本地通知和遠(yuǎn)程推送通知對(duì)基本概念和用法?
七构捡、第三方框架相關(guān)的問(wèn)題
1.第三方API是怎么用的液南?
2.列舉現(xiàn)在熟悉iOS開(kāi)發(fā)庫(kù)和第三方開(kāi)發(fā)庫(kù)?
八勾徽、其它相關(guān)的問(wèn)題
1.客戶(hù)端安全性處理方式滑凉?
2.簡(jiǎn)單描述下社交行為到步足?
3.sip是什么喘帚?
4.數(shù)據(jù)比較大的時(shí)候是用內(nèi)循環(huán)畅姊,還是外循壞?
5.有些圖片加載的比較慢怎么處理?你是怎么優(yōu)化程序的性能的?
6.你實(shí)現(xiàn)過(guò)一個(gè)框架或者庫(kù)以供別人使用么吹由?如果有若未,請(qǐng)談一談構(gòu)建框架或者庫(kù)時(shí)候的經(jīng)驗(yàn);如果沒(méi)有倾鲫,請(qǐng)?jiān)O(shè)想和設(shè)計(jì)框架的public的API粗合,并指出大概需要如何做、需要注意一些什么方面乌昔,來(lái)使別人容易地使用你的框架隙疚。
7.App需要加載超大量的數(shù)據(jù)給服務(wù)器發(fā)送請(qǐng)求,但是服務(wù)器卡住了如何解決玫荣?
8.利用NSNotificationCenter實(shí)現(xiàn)跨多控制器傳輸數(shù)據(jù)和消息中用同步還是異步甚淡?
========================================
一般而言,小公司問(wèn)項(xiàng)目捅厂;大公司做筆試題贯卦;做地圖的一定考算法
Html5你用過(guò)沒(méi)有?有什么新特性焙贷?
HTTP撵割、UDP
請(qǐng)求的幾種方式?get和post
多線(xiàn)程有幾種方式辙芍?你用過(guò)沒(méi)有啡彬?你經(jīng)常用哪種?怎么用的故硅?
GCD并行
XMPP里面的怎么做的語(yǔ)言壓縮庶灿?群聊怎么做的?都有哪些吃衅。往踢。。你能自己寫(xiě)嗎徘层?
第三方框架你都用過(guò)哪些峻呕?怎么用的利职?能跟具體講講SDWebImage里面都有什么?圖片的異步加載瘦癌?圖文混排猪贪?
你用過(guò)KVO和NSNotification嗎?哪里用了讯私?為什么要热押?KVO與NSNotification有什么區(qū)別?
介紹下你的項(xiàng)目吧妄帘?
====================================
常見(jiàn)面試題:
1楞黄、請(qǐng)你做一下自我介紹
要求:時(shí)間在1-2分鐘提前背記好
舉例:您好,我叫xxx抡驼,我是13年計(jì)算機(jī)專(zhuān)業(yè)本科畢業(yè)生今天來(lái)貴公司面試xxx職位鬼廓,這份工作不僅與我的專(zhuān)業(yè)對(duì)口,同時(shí)也是我的特長(zhǎng)與興趣所在≈旅耍現(xiàn)在我就從以下三個(gè)方面介紹自己
一:社會(huì)實(shí)踐:我有一年半的xxx開(kāi)發(fā)經(jīng)驗(yàn)碎税,做過(guò)xxx等幾款項(xiàng)目,在開(kāi)發(fā)中擔(dān)項(xiàng)目組長(zhǎng)馏锡。
二:學(xué)習(xí)能力:我有較強(qiáng)的學(xué)習(xí)能力雷蹂,能熟練的進(jìn)行xxx操作,并能使用xxx等語(yǔ)言編程杯道。
三:交際能力:我的性格沉穩(wěn)匪煌,能坐得住,對(duì)IT行業(yè)的工作党巾,具有非常好的適應(yīng)能力萎庭,而且為人謙和,具有很強(qiáng)的組織和協(xié)調(diào)能力齿拂,富有的事業(yè)心和責(zé)任感使我能夠面對(duì)任何困難和挑戰(zhàn)驳规。
從以上的簡(jiǎn)單自我介紹,我希望公司能給我一個(gè)展示自己能力的機(jī)會(huì)署海,讓我我可以學(xué)以致用吗购,同時(shí)我也很欣賞XX公司的企業(yè)文化與工作環(huán)境。我愿意成為企業(yè)一員砸狞,為企業(yè)的發(fā)展貢獻(xiàn)自己的一份力量捻勉。我的職業(yè)生涯目標(biāo)是,做一個(gè)既懂技術(shù)刀森,又懂業(yè)務(wù)的復(fù)合型人才贯底。
2、你對(duì)我們公司了解多少?
怎么樣了解企業(yè)
a禽捆、查企業(yè)營(yíng)業(yè)執(zhí)照:登陸北京工商行政管理局,到企業(yè)信用信息查詢(xún)飘哨,關(guān)注:注冊(cè)資金胚想,營(yíng)業(yè)時(shí)間
b、了解企業(yè):登陸企業(yè)網(wǎng)站芽隆,查詢(xún)企業(yè)的情況關(guān)注:主營(yíng)業(yè)務(wù)浊服、規(guī)模、iOS團(tuán)隊(duì)胚吁、上線(xiàn)產(chǎn)品等
3牙躺、請(qǐng)談?wù)勀愕膬?yōu)點(diǎn)和缺點(diǎn)。
4腕扶、你為什么離開(kāi)上一家公司孽拷?
原因有:
家里有事,簡(jiǎn)稱(chēng)個(gè)人原因(買(mǎi)房搬家半抱、治病救人都行E )
公司轉(zhuǎn)型,簡(jiǎn)稱(chēng)結(jié)構(gòu)調(diào)整(公司轉(zhuǎn)戰(zhàn)陣地窿侈、主要業(yè)務(wù)變更炼幔、人事結(jié)構(gòu)性裁員等無(wú)望之災(zāi)!)
個(gè)人發(fā)展史简,簡(jiǎn)稱(chēng)尋找挑戰(zhàn)(小有成功乃秀、尋找新的個(gè)人發(fā)展前景什么的,個(gè)人轉(zhuǎn)型T脖)
忌:
與人合不來(lái)6逖丁(精神病患的同事,受不了Q每)
與上事不合Lб鳌(脾氣大,擺架子统抬,不認(rèn)錯(cuò);鸨尽)
失職和無(wú)能!(大意了聪建,惹禍了钙畔,做不了!)
貪污瀆職了=痿铩(沒(méi)進(jìn)去擎析,算命大,沒(méi)人用!)
5揍魂、你的職業(yè)目標(biāo)是什么桨醋?(短期和長(zhǎng)期)
短期發(fā)展:
以做好本職工作為主展開(kāi)
長(zhǎng)期發(fā)展:
方向一、成為項(xiàng)目經(jīng)理
方向二现斋、成為研發(fā)經(jīng)理或技術(shù)總監(jiān)
方向三喜最、轉(zhuǎn)向管理崗位
6、你對(duì)加班的看法庄蹋?
實(shí)際上好多公司問(wèn)這個(gè)問(wèn)題瞬内,并不證明一定要加班,只是想測(cè)試你是否愿意為公司奉獻(xiàn)限书。這個(gè)時(shí)候你可以回答:如果是工作需要我會(huì)義不容辭加班虫蝶,我現(xiàn)在沒(méi)有任何家庭負(fù)擔(dān),可以全身心的投入工作倦西。但同時(shí)能真,我也會(huì)提高工作效率,減少不必要的加班调限。
7舟陆、你對(duì)薪資的要求?(你期望薪資多少耻矮?)
?具體數(shù)值(我期望的薪資是xx秦躯,但是如果其他方面的待遇不錯(cuò)的話(huà),也是可以商量的)
8裆装、你有什么問(wèn)題要問(wèn)我(面試官)的踱承?
?面對(duì)人事:公司晉升機(jī)制、企業(yè)文化等
?面對(duì)技術(shù):面試中的某個(gè)技術(shù)哨免、公司某個(gè)項(xiàng)目情況
?面對(duì)總監(jiān):團(tuán)隊(duì)組成及氛圍茎活,開(kāi)發(fā)前景的看法
8、工作經(jīng)歷:
9琢唾、工作流程:
一個(gè)產(chǎn)品的流程:
項(xiàng)目流程:
第一步:介紹你項(xiàng)目是干嘛的
第二步:介紹下你負(fù)責(zé)的是哪塊
第三步:介紹下里面都有什么功能载荔,你是怎么實(shí)現(xiàn)的,怎么分層的采桃?寫(xiě)了什么模型?封裝了什么工具類(lèi)懒熙?自定義什么?用了什么分類(lèi)普办?等等
======================================
iOS筆試題
l基礎(chǔ)
1工扎、#import和#include的區(qū)別?
2衔蹲、寫(xiě)一個(gè)計(jì)算A肢娘、B中較大值的標(biāo)準(zhǔn)宏MAX?
3、談一下關(guān)鍵字static的作用橱健?關(guān)鍵字const呢而钞?
4、break拘荡、continue笨忌、return的區(qū)別是什么?
5俱病、講一下OC和C有哪些區(qū)別?
6袱结、堆和棧的區(qū)別是什么亮隙?
7、談一下iOS App的生命周期垢夹?
8溢吻、簡(jiǎn)述一下UIViewController的生命周期?
9果元、frame和bounds的區(qū)別促王?
10、談一下Objective-C的內(nèi)存管理方式而晒?
11蝇狼、簡(jiǎn)述assign、retain倡怎、copy迅耘、weak和strong分別在什么情況下使用?
12监署、深復(fù)制和淺復(fù)制的區(qū)別颤专?
13、說(shuō)說(shuō)你對(duì)KVC和KVO的理解钠乏?
14栖秕、談一下你對(duì)block的理解,請(qǐng)寫(xiě)聲明一個(gè)block變量晓避?
15簇捍、iOS代理和block有哪些相同點(diǎn)和區(qū)別點(diǎn)
16、類(lèi)別的作用够滑?說(shuō)一下類(lèi)別和類(lèi)擴(kuò)展的區(qū)別垦写?
17、談一下UITableViewCell的重用機(jī)制彰触?
18梯投、UICollectionView和UITableView的區(qū)別有哪些?
19犁享、談一下面向?qū)ο蟮膸讉€(gè)主要特征?你是如何理解面向?qū)ο缶幊趟枷氲?
20导犹、談一下你常用的一些設(shè)計(jì)模式及應(yīng)用場(chǎng)景裹赴?
21、類(lèi)別和繼承有哪些區(qū)別么鹤?
22终娃、你常用的數(shù)據(jù)存儲(chǔ)方式有哪些?
23蒸甜、JSON和XML有什么區(qū)別?
l高級(jí)
24棠耕、Http協(xié)議是什么?,Http協(xié)議中GET和POST有哪些區(qū)別柠新?
25窍荧、談?wù)勀銓?duì)Socket的理解?TCP和UDP協(xié)議有什么區(qū)別?
26恨憎、談?wù)勀銓?duì)MVC開(kāi)發(fā)模式的理解,為什么要采用MVC模式?你是如何在項(xiàng)目開(kāi)發(fā)中采用MVC模式的蕊退?
27、通知中心和代理都可以用來(lái)傳遞消息和數(shù)據(jù)憔恳,兩者有什么區(qū)別瓤荔?
28、你在項(xiàng)目當(dāng)中是如何封裝網(wǎng)絡(luò)數(shù)據(jù)請(qǐng)求的钥组?
29输硝、你有做過(guò)屏幕適配嗎?在項(xiàng)目中你是如何進(jìn)行適配的者铜?
30腔丧、在開(kāi)始一個(gè)新項(xiàng)目時(shí),你通常如何分析采用什么樣的模式寫(xiě)代碼,是純代碼或者XIB或者Storyboard?
31、談一下iOS中的多線(xiàn)程作烟?以及在分別在什么情況下使用多線(xiàn)程?
32愉粤、簡(jiǎn)述一下消息推送的流程?
33拿撩、你上線(xiàn)過(guò)App嗎?簡(jiǎn)述一下App發(fā)布到AppStore的流程衣厘?
34、你做過(guò)電商項(xiàng)目嗎?談?wù)勝?gòu)買(mǎi)一個(gè)商品的具體流程應(yīng)該是怎樣的?你使用什么支付方式?
35压恒、AFNetworking是最常用的網(wǎng)絡(luò)框架,談?wù)勥@個(gè)框架內(nèi)部是如何請(qǐng)求數(shù)據(jù)的?
36影暴、SDWebImage可以用來(lái)異步加載圖片,談?wù)勥@個(gè)庫(kù)內(nèi)部是如何異步加載并顯示圖片的? AFNetworking也提供了異步加載圖片的方式,為什么要使用SDWebImage,它有什么好處?
37、數(shù)據(jù)庫(kù)FMDB庫(kù)和CoreData有什么區(qū)別?
38探赫、你使用過(guò)Xcode7開(kāi)發(fā)嗎?需要注意什么?
39型宙、談一下你使用第三方登錄的業(yè)務(wù)邏輯?
40、你使用過(guò)版本管理工具SVN/Git嗎?多人開(kāi)發(fā)時(shí)需要注意什么?
41伦吠、你在項(xiàng)目開(kāi)發(fā)中使用過(guò)哪些常用的第三方庫(kù)?
42妆兑、iOS中的響應(yīng)鏈?zhǔn)鞘裁?它是如何發(fā)揮作用的?
43魂拦、你在iOS項(xiàng)目開(kāi)發(fā)中是如何查看Bug?如何調(diào)試?如何解決的?
l擴(kuò)展
44、你對(duì)藍(lán)牙開(kāi)發(fā)有了解嗎?在iOS端如何做藍(lán)牙開(kāi)發(fā)?
45搁嗓、做過(guò)多語(yǔ)言開(kāi)發(fā)嗎?多語(yǔ)言(國(guó)際化/本地化)開(kāi)發(fā)需要注意什么?
46芯勘、你有做過(guò)動(dòng)畫(huà)嗎?如何做?
47、你有做過(guò)繪圖嗎?如何做?
48腺逛、做過(guò)地圖App嗎?你通常使用什么地圖?
49荷愕、使用過(guò)CocoaPods這個(gè)第三方庫(kù)管理工具嗎?
50、做過(guò)IM(即時(shí)通訊)嗎?有用過(guò)XMPP嗎?
51棍矛、做過(guò)音頻,視頻播放器嗎?你是如何做的?
52安疗、你了解哪些iOS8和iOS9的新特性知識(shí)?在實(shí)際項(xiàng)目中使用過(guò)哪些?
53、談一下你對(duì)iOS中Runloop的了解?
54够委、談一下OC運(yùn)行時(shí)Runtime?
55茂契、請(qǐng)描述一下Instruments及其作用?
l人事
56、你前公司技術(shù)部門(mén)有多少人?都有哪些人?分別做什么?你們?nèi)绾螀f(xié)調(diào)工作?
57慨绳、你們是如何開(kāi)始一個(gè)項(xiàng)目的?如何分配工作的?在做項(xiàng)目過(guò)程中有問(wèn)題怎樣去解決?
58、你前公司是如何管理項(xiàng)目進(jìn)度的?
59真竖、你為什么選擇離開(kāi)上家公司?
60脐雪、你工作了兩年,你覺(jué)得你現(xiàn)在處于怎樣的水平?這兩年的工作讓你收獲了哪些?對(duì)你來(lái)說(shuō)最大的收獲是什么?
61、你覺(jué)得以你現(xiàn)在的能力,能夠承擔(dān)多大的項(xiàng)目?和其他iOS開(kāi)發(fā)人員相比,你的優(yōu)勢(shì)在哪里?
=======================================
一恢共、自我介紹:
我叫**战秋,畢業(yè)于***大學(xué),此前一直就職于***公司讨韭,擔(dān)任iOS開(kāi)發(fā)工程師一職脂信,在職期間做過(guò)的項(xiàng)目種類(lèi)繁多,有商場(chǎng)類(lèi)透硝,醫(yī)療類(lèi)狰闪,旅游類(lèi),金融類(lèi)等等一共十多個(gè)濒生,其中有四個(gè)是自己獨(dú)立完成的埋泵,其余的是團(tuán)隊(duì)合作完成的。
二罪治、面試專(zhuān)業(yè)技能
1丽声、熟悉開(kāi)發(fā)環(huán)境,熟悉語(yǔ)言觉义,大部分面試官會(huì)對(duì)debug能力比較感興趣雁社,都會(huì)問(wèn)這個(gè)問(wèn)題,我的回答是:
對(duì)于每個(gè)程序員來(lái)說(shuō)晒骇,遇到bug是最頭痛的事情霉撵,想著自己寫(xiě)的代碼是如何漂亮磺浙,是如何思路清晰,程序怎么就給crash掉了的喊巍,那么我對(duì)于這樣的問(wèn)題屠缭,有我自己解決的一套,不會(huì)像普通程序員那樣崭参,遇到問(wèn)題就急躁呵曹,不知所措。首先何暮,我會(huì)先看下問(wèn)題出錯(cuò)的原因奄喂,仔細(xì)查看reason,然后可以打一個(gè)全局?jǐn)帱c(diǎn)海洼,看斷點(diǎn)指向的位置上下文代碼的邏輯跨新,一般情況下都可以很快找出問(wèn)題所在,那么有的時(shí)候坏逢,我們會(huì)發(fā)現(xiàn)全局?jǐn)帱c(diǎn)也找不到錯(cuò)誤所在域帐,那么我會(huì)根據(jù)reason找到出錯(cuò)的事件,一般情況下我們都是系統(tǒng)響應(yīng)了某個(gè)事件才會(huì)crash的是整,我會(huì)根據(jù)事件邏輯相關(guān)的代碼肖揣,仔細(xì)查看問(wèn)題所在,若是碰到了bad_access這樣的問(wèn)題浮入,還可以打開(kāi)僵尸調(diào)試來(lái)做處理×牛現(xiàn)在碰到了問(wèn)題,想到的不再是代碼明明是對(duì)的啊事秀,而是想著我解決了一個(gè)問(wèn)題彤断,就是一次進(jìn)步,如果不是碰到問(wèn)題易迹,進(jìn)步的速度會(huì)變得很慢宰衙,有時(shí)候,很多新東西都是從bug中學(xué)到的睹欲。
注:有些面試官會(huì)問(wèn)到自己是否會(huì)處理真機(jī)調(diào)試的crash日志菩浙,可以這樣回答:
1、Xcode自己本身帶有查看crash日志的功能句伶,在device那里劲蜻,我們可以根據(jù)日志的具體內(nèi)容或是通過(guò)百度來(lái)找出crash的reason;
2考余、通過(guò)第三方的先嬉,雖然我沒(méi)有用過(guò),但是我知道可以實(shí)現(xiàn)這個(gè)功能楚堤,而且不會(huì)很麻煩疫蔓,一個(gè)是聽(tīng)云含懊,一個(gè)是我們熟悉的友盟,都可以獲取這些crash log衅胀。
2岔乔、MRC/ARC,可以直接說(shuō)自己沒(méi)有實(shí)際MRC的產(chǎn)品滚躯,但是懂得大致的原理(可以說(shuō)下黃金法則和自動(dòng)釋放池)雏门,但是目前主流的都是ARC,他本身就是比MRC方便掸掏,高效茁影,在編譯期間會(huì)自動(dòng)判斷在需要做release或者retain操作的地方加上內(nèi)存管理的方法,這個(gè)也使得我們做開(kāi)發(fā)的時(shí)候更加方便丧凤,快捷募闲。
具體的內(nèi)存管理語(yǔ)義呢(retain,copy愿待,strong浩螺,weak,assign等等可以網(wǎng)上查資料仍侥,有很多)年扩;
3、多線(xiàn)程:多線(xiàn)程分為四種:pthread,
nsthread,GCD, nsopreation访圃,由于前兩者的復(fù)雜和不安全性,目前主流的是用的GCD(C的API)和nsopreation相嵌,那么GCD分任務(wù)和隊(duì)列腿时,它是才用block的方式,將任務(wù)加到隊(duì)列中實(shí)現(xiàn)多線(xiàn)程饭宾,具體可以實(shí)現(xiàn)的種類(lèi)有同步串行批糟,同步并行,異步串行看铆,異步并行徽鼎,其中異步并行用的最多,當(dāng)然GCD還有很多其他的用法弹惦,比如設(shè)置屏障否淤,group,source等等棠隐,實(shí)現(xiàn)的功能繁多(要查的人可以查看這篇blog:http://blog.devtang.com/blog/2012/02/22/use-gcd/和這篇:https://github.com/nixzhu/dev-blog/blob/master/2014-04-19-grand-central-dispatch-in-depth-part-1.md)
那么nsopreation是在GCD的基礎(chǔ)上做了封裝后OC的API石抡,它采用對(duì)象的形式來(lái)創(chuàng)建多線(xiàn)程,其中nsopreation是一個(gè)抽象類(lèi)助泽,我們不可以直接使用啰扛,只能用到它的子類(lèi)嚎京,系統(tǒng)已經(jīng)幫我們?cè)O(shè)計(jì)了它的兩個(gè)子類(lèi),一個(gè)是invocation(采用selector的形式)隐解,一個(gè)是block(采用block的形式)鞍帝,那么我們?cè)谕ㄟ^(guò)子類(lèi)創(chuàng)建人物后,再加載到queue上煞茫,系統(tǒng)自動(dòng)幫我們分配多線(xiàn)程完成任務(wù)帕涌,同時(shí)我們也可以對(duì)不同線(xiàn)程設(shè)置依賴(lài)關(guān)系,功能同樣很強(qiáng)大溜嗜。
有的面試官會(huì)問(wèn)你用到哪一種方式多一點(diǎn)宵膨,我個(gè)人回答的是nsopreation,回答如下:
他們兩種都是主流的方式炸宵,我個(gè)人偏向nsopreation辟躏,主要還是看不同的情況,GCD是一種很直觀(guān)的形式去創(chuàng)建多線(xiàn)程土全,在使用過(guò)程種如果創(chuàng)建線(xiàn)程不會(huì)多次使用捎琐,并且操作較為簡(jiǎn)單的話(huà),我會(huì)選擇GCD裹匙,大多數(shù)情況下需要重復(fù)創(chuàng)建子線(xiàn)程瑞凑,那么我會(huì)選擇nsopreation,因?yàn)樗闹赜眯员容^高概页,而且使用起來(lái)籽御,我覺(jué)得更加適合面向?qū)ο缶幊痰乃枷耄谝恍┐蟮捻?xiàng)目我更加偏愛(ài)nsopreation惰匙。
4技掏、TCP/IP協(xié)議,socket相關(guān):
我回答的要點(diǎn):TCP/IP協(xié)議是傳輸層的協(xié)議族项鬼,他提供了數(shù)據(jù)傳輸?shù)目煽啃院涂尚行匝剖幔屛覀兊臄?shù)據(jù)可以在網(wǎng)絡(luò)上傳輸;Http是應(yīng)用層的協(xié)議绘盟,保證了數(shù)據(jù)傳輸?shù)陌踩蛿?shù)據(jù)可靠性鸠真,是對(duì)TCP/IP協(xié)議的再次封裝,通過(guò)加頭部和校驗(yàn)龄毡,讓我們可以更方便的傳輸數(shù)據(jù)吠卷;
socket:是封裝了TCP/IP協(xié)議的一組API,他讓我們程序員更加方便的使用網(wǎng)絡(luò)去達(dá)到我們想要的效果沦零,傳輸數(shù)據(jù)撤嫩,我們不需要針對(duì)復(fù)雜的網(wǎng)絡(luò)協(xié)議做太多的了解,就可以實(shí)現(xiàn)C/S模式的一個(gè)通訊方式蠢终,它是一個(gè)長(zhǎng)連接的過(guò)程序攘,我們具體要做的事情是:create一個(gè)socket對(duì)象茴她,監(jiān)聽(tīng)I(yíng)P地址和端口,readData&writeData程奠,我們只需簡(jiǎn)單的幾步就可以完成強(qiáng)大的功能丈牢。
有的面試官問(wèn)我是怎么實(shí)現(xiàn)IM的,我說(shuō)的是用公司底層的接口瞄沙,自行更具客戶(hù)需要寫(xiě)客戶(hù)端己沛,這樣面試官就不會(huì)問(wèn)底層的東西了。
如果面試官問(wèn)道TCP/IP等協(xié)議的原理距境,那只能說(shuō)面試官不懂或者是問(wèn)的東西跟他表達(dá)的不一樣申尼。我們可以這樣回答,TCP/IP協(xié)議族本來(lái)就是一個(gè)非常復(fù)雜的協(xié)議垫桂,可以寫(xiě)三本書(shū)师幕,說(shuō)到原理還真說(shuō)不出來(lái),如果說(shuō)對(duì)于一個(gè)前端的工程師還需要了解這么多的網(wǎng)絡(luò)知識(shí)诬滩,可能對(duì)于一個(gè)程序員來(lái)說(shuō)霹粥,要求太苛刻,如果真的是這樣疼鸟,那么我們是不是把后臺(tái)的事情一起做了算了呢后控?這顯然是不合理的,不過(guò)公司若真是有這樣的需求空镜,當(dāng)然浩淘,我覺(jué)得我對(duì)網(wǎng)絡(luò)的了解,做這樣的項(xiàng)目也是可以的吴攒,去學(xué)習(xí)并很快用到項(xiàng)目上也是可以的张抄,但是對(duì)于項(xiàng)目進(jìn)度,肯定會(huì)在最開(kāi)始立項(xiàng)的時(shí)候就說(shuō)明舶斧,時(shí)間可能會(huì)稍微久,這個(gè)都是可以商量的察皇。
5茴厉、設(shè)計(jì)模式:
所有的設(shè)計(jì)模式都是從面向?qū)ο缶幊痰牧鶄€(gè)原則來(lái)的(http://m.blog.csdn.net/blog/dragonseek24/13293947,這個(gè)需要花時(shí)間去理解什荣,不過(guò)現(xiàn)在面試可以強(qiáng)記下矾缓,吹逼用下),那么可以先說(shuō)原則后稻爬,在談設(shè)計(jì)模式嗜闻,切記裝逼的話(huà):我們編程不是為了用某種設(shè)計(jì)原則而用某種設(shè)計(jì)原則,而是說(shuō)我心中有了這樣的思想桅锄,為了讓代碼變得好看琉雳,邏輯更加清楚样眠,便于擴(kuò)展和重構(gòu),我才這樣編程翠肘,在我們編寫(xiě)的過(guò)程中是不知不覺(jué)就用到了一些設(shè)計(jì)模式檐束,所以,以思想為主束倍,編程為輔被丧。然后設(shè)計(jì)的模式大家都懂,隨便說(shuō)下就行了绪妹。
注:工廠(chǎng)模式是將功能相同或者類(lèi)似的方法或者類(lèi)封裝起來(lái)甥桂,通過(guò)抽象類(lèi)的方式,給出最少的接口邮旷,實(shí)現(xiàn)最多的功能黄选。
6、AF的使用以及原理:
見(jiàn)blog(2.0版本:http://blog.cnbang.net/tech/2320/廊移;3.0版本:http://www.reibang.com/p/0ab3ffa9c5f5)
6糕簿、FMDB和coreData的區(qū)別:
FMDB:第三方lib,是對(duì)sqlite的封裝,存儲(chǔ)結(jié)構(gòu)為表結(jié)構(gòu)狡孔,使用sql語(yǔ)句來(lái)做存儲(chǔ)管理懂诗;
coreData為蘋(píng)果原生的API,同樣是封裝了SQLite苗膝,但是存儲(chǔ)的基本單元是對(duì)象殃恒;
個(gè)人認(rèn)為FMDB使用更加方便和靈活,在項(xiàng)目構(gòu)架階段辱揭,設(shè)計(jì)好了表結(jié)構(gòu)后离唐,后期的增刪改查都非常容易;
7问窃、使用過(guò)的第三方lib:SD亥鬓,AF,JSONModel域庇,MJ嵌戈,MBProgressHUD,SVProgressHUD听皿,Masonry熟呛,YTK,YYKit(這個(gè)是最新的尉姨,估計(jì)很多人都聽(tīng)過(guò)庵朝,用的人就更少了,但是這個(gè)工具庫(kù)在GitHub上已經(jīng)引起了爆炸性轟動(dòng));
8九府、runtime
(http://southpeak.github.io/blog/2014/11/03/objective-c-runtime-yun-xing-shi-zhi-san-:fang-fa-yu-xiao-xi-zhuan-fa/)
9椎瘟、runloop
http://blog.ibireme.com/2015/05/18/runloop/
10、YTK介紹:
https://github.com/yuantiku/YTKNetwork
找到基礎(chǔ)教程和高級(jí)教程昔逗;
11降传、YYKit介紹:
https://github.com/ibireme/YYKit查看中文介紹;
其他的像內(nèi)存優(yōu)化啊勾怒,藍(lán)牙啊婆排,支付啊,都是按照老師那套來(lái)的笔链,我也是根據(jù)老師的demo說(shuō)的段只。
搭建框架不是指的UI而是指的你怎么去設(shè)計(jì)一個(gè)類(lèi),整體規(guī)劃整個(gè)產(chǎn)品所要用到的所有類(lèi)鉴扫,從面相對(duì)象編程的六個(gè)原則來(lái)說(shuō)就行了赞枕。
如有需要補(bǔ)充的,群聊或者私聊都可坪创,我會(huì)在群里更新炕婶;
============================
1.GCD都有哪些API?(胡忠應(yīng))
提示:dispatch_async
dispatch_group_async
dispatch_group_async
dispatch_barrier_async
dispatch_queue_create
dispatch_after
dispatch_get_main_queue
dispatch_get_global_queue
2.app測(cè)試時(shí)怎樣避免沒(méi)有測(cè)試完善出現(xiàn)的bug,比如說(shuō)在6上運(yùn)行沒(méi)事在4上運(yùn)行就出bug了莱预。(胡忠應(yīng))
提示:1.項(xiàng)目做完柠掂,需要現(xiàn)在iphone4,iphone4s,iphone5,iphone6依沮,iphone6+等模擬器上運(yùn)行一遍涯贞,確保模擬器沒(méi)有問(wèn)題。然后在公司測(cè)試機(jī)上運(yùn)行危喉。
2.項(xiàng)目中都要采用自動(dòng)布局宋渔。確保在任何屏幕坐標(biāo)都是相對(duì)的。
3.注意api的版本辜限,低版本不用用高api函數(shù)皇拣,如果需要使用,必須判斷版本薄嫡。
3.自己獨(dú)立負(fù)責(zé)的項(xiàng)目氧急,你的項(xiàng)目框架是怎么搭建的?(吳永祥)
提示:這個(gè)說(shuō)起來(lái)比較多岂座,我給你一個(gè)鏈接态蒂,里面寫(xiě)的很詳細(xì)杭措,主要談公司架構(gòu)的费什,寫(xiě)的很好:
http://www.cocoachina.com/ios/20141112/10199.html
4.在異步線(xiàn)程創(chuàng)建的對(duì)象需要釋放嗎?(王松)
提示:這個(gè)問(wèn)題問(wèn)的不是太清楚,可以從mrc和arc角度考慮鸳址〈耱剑可以從堆和棧角度來(lái)說(shuō),棧上的對(duì)象我們不需要手動(dòng)釋放稿黍,堆上的對(duì)象需要手動(dòng)釋放等疹瘦。
5.支付寶生成的訂單是放在哪里的?巡球,添加到購(gòu)物車(chē)的數(shù)據(jù)放在哪里言沐,在ipad上登錄能看見(jiàn)添加到購(gòu)物車(chē)的信息?(王松)
提示:訂單是服務(wù)器返回的酣栈,以json/xml方式返回過(guò)來(lái)的险胰。購(gòu)物數(shù)據(jù)保存兩份,本地有保存矿筝,服務(wù)器也有保存起便。如果購(gòu)物車(chē)信息在服務(wù)器有保存,可以看到窖维。
6.請(qǐng)說(shuō)一下第三方登錄以及支付的過(guò)程和原理榆综。
授權(quán)原理:
OAuth2.0分為四種鑒權(quán)方式, 已分別應(yīng)對(duì)不同的需求, 比如說(shuō)web或app. 通常我們?cè)趙eb端使用第一種Authorization Code方式。為了簡(jiǎn)單說(shuō)明铸史,我直接拿QQ做例子鼻疮,簡(jiǎn)單說(shuō)一下流程:
當(dāng)用戶(hù)點(diǎn)擊QQ登陸,你會(huì)通引導(dǎo)用戶(hù)跳轉(zhuǎn)到第三方登陸的登陸界面沛贪, 當(dāng)用戶(hù)成功登錄以后會(huì)自動(dòng)跳轉(zhuǎn)回來(lái)陋守,并附帶一個(gè)code參數(shù),接著你使用code就可以獲得access token(訪(fǎng)問(wèn)令牌)利赋,對(duì)于QQ水评,由于第三方登錄結(jié)合了Openid, 所以需要再通過(guò)token獲取openid媚送。這個(gè)openid是和QQ用戶(hù)一一對(duì)應(yīng)的, 使用access token + openid 即可獲取用戶(hù)信息中燥。
第三方平臺(tái)和本地用戶(hù)系統(tǒng)結(jié)合應(yīng)該分為三種情況:
本地未登錄,第一次登錄第三方:此時(shí)相當(dāng)于注冊(cè)塘偎,直接把第三方信息拉取來(lái)并注冊(cè)成本地用戶(hù)就可以了疗涉,并建立本地用戶(hù)與第三方用戶(hù)(openid)的綁定關(guān)系
本地未登錄,再次登錄第三方:此時(shí)用戶(hù)已注冊(cè)吟秩,獲取到openid后直接找出對(duì)應(yīng)的本地用戶(hù)即可
本地登錄咱扣,并綁定第三方: 這個(gè)只要將獲取到的openid綁定到本地用戶(hù)就可以了。
支付:看下我講的支付涵防,文檔里面都有支付流程和原理闹伪。詳細(xì)看下。
7.說(shuō)一下AFNetWorking和SDWebImage的底層實(shí)現(xiàn)機(jī)制。
AFNetWorking基于系統(tǒng)NSURLConnection和NSURLSession實(shí)現(xiàn)的偏瓤,也是基于CFNetWork的杀怠,AFN回調(diào)采用Block,使用方便厅克。而且AFN也封裝了圖片緩存的處理等赔退。
SDWebImage實(shí)現(xiàn)機(jī)制見(jiàn)截圖