1浪耘、OC存在多重繼承嗎乱灵?
不存在 ,用協(xié)議去實(shí)現(xiàn)
2七冲、重載了解嗎痛倚?
重載的定義:同方法名 不同參數(shù)類型 OC不可以重載。
可以重寫(xiě)
3澜躺、頁(yè)面間的傳值方式有哪些
公開(kāi)的屬性 方法 協(xié)議
block
通知
NSUserDefault
4蝉稳、通知和delegate的區(qū)別?
通知是允許多對(duì)多的掘鄙,而delegate只能是1對(duì)1的耘戚。
通知是松耦合的,通知方不需要知道被通知方的任何情況操漠,而delegate不行收津。
通知的效率比起delegate略差。
5浊伙、通知的發(fā)送和接收是否在同一線程撞秋?
postNotification:總是會(huì)卡住當(dāng)前線程,待observer執(zhí)行(如不特殊處理 selector也會(huì)在postNotification:所在線程執(zhí)行)結(jié)束之后才會(huì)繼續(xù)往下執(zhí)行嚣鄙。所以是同 步的吻贿。
Notification Queues可以實(shí)現(xiàn)異步
machport 或者用block的方式修改執(zhí)行線程
6、表視圖復(fù)用
tableview復(fù)用
NSMutableArray* visiableCells 和 NSMutableDictnery* reusableTableCells
每當(dāng)有一個(gè)cell從屏幕消失哑子,就將其放到緩存池中廓八,如果有新的cell出現(xiàn),就去緩存池中取赵抢,如果緩存池中沒(méi)有剧蹂,再創(chuàng)建。
如果加入100條數(shù)據(jù)烦却,iPhone屏幕最多顯示10個(gè)cell宠叼。
1、創(chuàng)建10個(gè)cell,給cell指定同樣的重用標(biāo)識(shí)冒冬,然后10個(gè)cell全部加入到visiableCells伸蚯,此時(shí)reusableTableCells為空。
2简烤、向下拖動(dòng)tableview剂邮,當(dāng)cell1完全移出屏幕時(shí),并且cell11完全顯示出來(lái)的時(shí)候横侦。cell11加入到visiableCells挥萌,cell1移除visiableCells,cell1加入到reusableTableCells枉侧。
3引瀑、接著往下拖動(dòng)tableview,因?yàn)閞eusableTableView有值榨馁,所以憨栽,當(dāng)需要顯示新的cell時(shí),返回cell1翼虫。cell1加入到visiableCells中屑柔,cell1移出reusableTableCells,cell2移出visiableCells珍剑,cell2加入到reusableTableCells中锯蛀。
7、HTTP和HTTPS區(qū)別次慢?
待下一篇完善
8、了解NSURLConnection和Session嗎翔曲?
待下一篇完善
9迫像、說(shuō)一下NSURLSession具體的實(shí)現(xiàn)原理
待下一篇完善
10、http的頭部的幾個(gè)碼瞳遍。
待下一篇完善
11闻妓、viewDidLoad和viewDidAppear的調(diào)用時(shí)機(jī)
viewDidLoad view 加載到內(nèi)存的時(shí)候調(diào)用,一般執(zhí)行一次掠械,如果內(nèi)存警告了view可能會(huì)被置為nil由缆,viewDidLoad會(huì)再一次執(zhí)行。
viewDidAppear
pushViewController (vc, animated: true)
----ViewController---viewDidDisappear-------
---ViewController2----viewDidAppear-------
present (vc, animated: true, completion: nil)
---ViewController2----viewDidAppear-------
----ViewController---viewDidDisappear-------