2016年3月阿里巴巴iOS开发工程师一面二面面试题目
匿名网友
发布于: 2016-03-11 00:00:00
阅读 269
收藏 0
点赞 0
评论 0
阿里一面:
MVC
具有什么样的优势,各个模块之间怎么通信,比如点击 Button 后 怎么通知 Model?
- 两个无限长度链表(也就是可能有环) 判断有没有交点
UITableView
的相关优化
KVO
、Notification
、delegate
各自的优缺点,效率还有使用场景
- 如何手动通知
KVO
- Objective-C 中的
copy
方法
- runtime 中,
SEL
和 IMP
的区别
autoreleasepool
的使用场景和原理
RunLoop
的实现原理和数据结构,什么时候会用到
block
为什么会有循环引用
- 使用
GCD
如何实现这个需求:A、B、C 三个任务并发,完成后执行任务 D。
NSOperation
和 GCD
的区别
CoreData
的使用,如何处理多线程问题
- 如何设计图片缓存?
- 有没有自己设计过网络控件?
阿里二面:
- 怎么判断某个
cell
是否显示在屏幕上
- 进程和线程的区别
TCP
与 UDP
区别
TCP
流量控制
- 数组和链表的区别
UIView
生命周期
- 如果页面 A 跳转到 页面 B,A 的
viewDidDisappear
方法和 B 的 viewDidAppear
方法哪个先调用?
block
循环引用问题
ARC
的本质
RunLoop
的基本概念,它是怎么休眠的?
Autoreleasepool
什么时候释放,在什么场景下使用?
- 如何找到字符串中第一个不重复的字符
- 哈希表如何处理冲突
评论列表