iOS面试小结(一)
结束上海将近4年的iOS开发,今年回到了我们美丽的不像样的!我的家乡----大连!准备为家乡的互联网行业带来一丝新鲜有活力的血液!!!哈哈哈哈。。不叨叨了,赶紧撸起代码,加油干吧!!!!
问题1:性能优化
1.内存优化
2.渲染优化
3.尽量不要阻塞主线程
4.tableview的优化:高度缓存、重用cell、
5.避免反复处理数据
6.选择数据存储项
7.网络数据的缓存
8.app启动优化-最近在看戴铭老师的专栏,最近更新的第三讲就是关于app启动的优化,有点深奥,宝宝还在消化当中。
其实还有很多方面,大家踊跃留言,一起交流学习进步啊。。。
问题2:UIViewController的生命周期、在没有退出当前app的情况下,下拉通知栏再上滑会触发哪个方法
1.+ (void)initialize; 类的初始化
2.- (instancetype)init; 对象初始化方法
3.-(void)loadView;开始加载视图
4.- (void)viewDidLoad;视图将要布局
5.-(void)viewWillAppear:(BOOL)animated;视图将要展现时会调用
6.-(void)viewWillLayoutSubviews;将要对子视图进行布局
7.-(void)viewDidLayoutSubviews;已经布局子视图
8.-(void)viewDidAppear:(BOOL)animated;视图完成展示
9.-(void)viewWillDisappear:(BOOL)animated;视图将要消失
10.-(void)viewDidDisappear:(BOOL)animated;视图已经消失
11.-(void)dealloc;控制器被销毁
会触发-(void)viewWillAppear:(BOOL)animated
问题3:weak和strong,引用计数啥时候就变0了,对象啥时候就表明已经释放了
weak和strong网上各位iOS大佬们总结的都很到位清晰,下次再摘录一下,嘿嘿,,
然后对象的释放,是不是完成了他的生命周期就被销毁了,没有再被引用,系统就自动销毁释放内存了呢?感觉理解的还是不到位,希望有看到小的这篇文章的大大们能够帮我解决这一疑惑!还有我们在使用ARC模式的时候,对象的引用计数是怎么变化的,为何就变0就被释放了???ARC模式下是如何知道该何时释放该对象的呢?????????
问题4:内存管理
问题5:类方法中可以使用self.x 吗
问题6:原生为什么可以和js交互
问题7:描述APNS的过程
问题8:描述用户点击屏幕整个响应过程
问题9:runloop runtime IMP isa
问题10:runtime 多线程
问题11:协议有几种 都是什么
问题12:id和instancetype区别
问题13:category和extension*
问题14:属性和实例变量