【提高】面试五

来源:互联网 发布:做微信视频的软件 编辑:程序博客网 时间:2024/05/17 02:44

1.无序数组 ab b重元素在a中都有 找出在a中但不在b中的所有元素 写出时间复杂度 

查找的算法。留坑

2.kvc kvo 区别 在什么场景使用
key value coding key value observer
kvc是用于设置值,kvc是用于检测某个值得变化
3.block使用时注意点 怎么避免? 在前面讲到
4.本地通知和推送通知的区别? (留坑)
5.单例?试着写一个 略
6.响应者链条?描述一个点击事件的传递 
7.三个任务abc c必须在ab完成之后才能执行 实现方案 多线程依赖关系
8.面向对象?理解 略
9.MVC  略
10.同步异步的区别 串行和并行的区别 同步和串行?异步和并行? 略
11.为开源项目贡献代码  
12.@synthesize和@dynamic的区别  
synthesize 只生成set
dynamic 只生成get
13.深拷贝和浅拷贝  前文有讲
14.单例  略
15.简述runtime 略
16.上拉刷新的实现机制 (留坑)
17.__bridge __bridge__transfer和__bridge_retained三者区别
__bridge只做类型转换,但是不修改对象(内存)管理权;
__bridge_retained(也可以使用CFBridgingRetain)将Objective-C的对象转换为Core Foundation的对象,同时将对象(内存)的管理权交给我们,后续需要使用CFRelease或者相关方法来释放对象;

 __bridge_transfer(也可以使用CFBridgingRelease)将Core Foundation的对象转换为Objective-C的对象,同时将对象(内存)的管理权交给ARC。


18.kvo和通知区别  为什么声明代理要满足NSObject 为什么声明代理用assign?

kvo 检测值变化,值变化的时候执行代码。通知是随时可以使用。
NSObject是所有代理的根协议 
是循环引用问题的解决方案。
0 0