最近,面试几间公司,对一些常见笔试面试问题作一次总结.
1.内存管理,必问.autoreleaspool的作用和理解,怎么知道对象已经释放?对象作用域结束是在什么时候?
retain,copy,assign的区别,如果对象的属性@property是数组用retain,是否正确,为什么?
2.谈谈你对runtime的看法
3.你项目中有用到runloop吗?有的,请说明用法.
4.深拷贝和浅拷贝有什么区别?copy和mutableCopy一定是深浅拷贝的区别么?为什么?
5.项目是用AFNetwork网络请求吗?谈谈如何用AFN进行请求?
6.现在让你设计一个轮播广告,你是如何设计?如果用到NSTimer,要注意什么?
7.设计一个照片浏览器需要注意什么?如何设计?
8.在MRC环境下setter和getter方法的理解.
9.在ARC环境下,在编译还是运行时才确定对象的类型?
10.你项目中哪些环节用到多线程?用GCD还是NSOperation,为什么不用NSThread?GCD可以控制并发数量吗?如何控 制?
11.为什么苹果推荐用NSURLSession网络请求,NSURLSession和NSURLConnection区别?
12.谈谈SDWebImage框架的理解.
13.__block,__unsafe_unretained和__weak有什么区别?作用是什么?怎么解决内存泄露,怎么解决循环引用?