1、OC存在多重继承吗?
不存在 ,用协议去实现
2、重载了解吗?
重载的定义:同方法名 不同参数类型 OC不可以重载。
可以重写
3、页面间的传值方式有哪些
公开的属性 方法 协议
block
通知
NSUserDefault
4、通知和delegate的区别?
通知是允许多对多的,而delegate只能是1对1的。
通知是松耦合的,通知方不需要知道被通知方的任何情况,而delegate不行。
通知的效率比起delegate略差。
5、通知的发送和接收是否在同一线程?
postNotification:总是会卡住当前线程,待observer执行(如不特殊处理 selector也会在postNotification:所在线程执行)结束之后才会继续往下执行。所以是同 步的。
Notification Queues可以实现异步
machport 或者用block的方式修改执行线程
6、表视图复用
tableview复用
NSMutableArray* visiableCells 和 NSMutableDictnery* reusableTableCells
每当有一个cell从屏幕消失,就将其放到缓存池中,如果有新的cell出现,就去缓存池中取,如果缓存池中没有,再创建。
如果加入100条数据,iPhone屏幕最多显示10个cell。
1、创建10个cell,给cell指定同样的重用标识,然后10个cell全部加入到visiableCells,此时reusableTableCells为空。
2、向下拖动tableview,当cell1完全移出屏幕时,并且cell11完全显示出来的时候。cell11加入到visiableCells,cell1移除visiableCells,cell1加入到reusableTableCells。
3、接着往下拖动tableview,因为reusableTableView有值,所以,当需要显示新的cell时,返回cell1。cell1加入到visiableCells中,cell1移出reusableTableCells,cell2移出visiableCells,cell2加入到reusableTableCells中。
7、HTTP和HTTPS区别?
待下一篇完善
8、了解NSURLConnection和Session吗?
待下一篇完善
9、说一下NSURLSession具体的实现原理
待下一篇完善
10、http的头部的几个码。
待下一篇完善
11、viewDidLoad和viewDidAppear的调用时机
viewDidLoad view 加载到内存的时候调用,一般执行一次,如果内存警告了view可能会被置为nil,viewDidLoad会再一次执行。
viewDidAppear
pushViewController (vc, animated: true)
----ViewController---viewDidDisappear-------
---ViewController2----viewDidAppear-------
present (vc, animated: true, completion: nil)
---ViewController2----viewDidAppear-------
----ViewController---viewDidDisappear-------