iOS开发--面试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS开发--面试相关的知识,希望对你有一定的参考价值。
今天一大清早去面试, 公司距离我家还挺近的, 花了一个小时走着去, 也顺路印下简历, 理理思路, 到了公司面试官什么的都不错, 还给我讲了很多知识, 收货也是满满的, 总结下今天都遇到了哪些问题, 调整调整状态.
1, 当需要自定义tabbar的item的数量可变时怎么做的
这里原本是想说自定义tabbar的, 不过估计考察的应该是runtime下的class动态创建类方法, 然后就简单的说下runtime, 并不知道回答的是否好, 但是原理是不会错的. 通过和后台的合作在数据中键值对中拿到类名, 然后通过class的方法实例化对象即可(NSClassFromString()).
2, 了解runtime么
并没有和面试官说消息机制什么乱七八糟的, 感觉没多大卵用, 就说了runtime的一些实际应用, 自我感觉还凑合, 毕竟自己在开发中用过几次, 也会动态的设置成员变量(成员变量其实是不可以的, 但是在runtime头文件中的确有方法, 这个涉及到静态的结构体成员变量动态增加, 所以应该并不是通过常规理解的runtime方法实现的)和方法
3, 做过定位么, 如果在后台始终刷新位置
这个我感觉可能面试有点误会我的意思了, 也可能是我的确说错了, 毕竟本人英语很烂, 方法会敲不会说, 不过也做过差不多的, 定位就不用说了, 没啥说的coreLocation或者百度的SDK, 说下如果在程序进入后台后长久的运行代码.
- (void)applicationDidEnterBackground:(UIApplication *)application { [self beingBackgroundUnpdateTask]; /* 代码写在这里就可以了 */ [self endBackgroundUpdateTask]; } - (void)beingBackgroundUnpdateTask { self.backgroundUpdateTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ [self endBackgroundUpdateTask]; }]; } - (void)endBackgroundUpdateTask { [[UIApplication sharedApplication] endBackgroundTask:self.backgroundUpdateTask]; self.backgroundUpdateTask = UIBackgroundTaskInvalid; }
这样后台就会反复刷新了.
4, 了解YYModel, 或者YYKit么
表示真的不会, 就看过一些YYKit的源码, 也没想过面试会问三方框架, 基本没说上啥.
5, 了解MVVM吗, 说说MVVM
这个基本也没啥说的, 网上一查一堆, 自己还是会一些的, 简单说说, 没问太多.
6, RAC
响应式函数编程, 对于信号流的应用, 说了些应用场景, 非要说框架的话也并非很熟悉.
7, tableView优化
说了动态计算高度, 通过接口数据等, 分散方法逻辑, 尽量手动计算, 也说了drawRect, 说了手动绘制cell, 不过又问起了YYKit从这里, 还是回答不上来了.
以上是关于iOS开发--面试的主要内容,如果未能解决你的问题,请参考以下文章
iOS开发CGRectGetMidX. CGRectGetMidY.CGRectGetMinY. CGRectGetMaxY. CGRectGetMinX. CGRectGetMaxX的使用(代码片段