面试基础小题笔记

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-------

你可能感兴趣的:(面试基础小题笔记)