码迷,mamicode.com
首页 > 移动开发 > 详细

iOS开发--面试

时间:2016-03-30 12:43:24      阅读:172      评论:0      收藏:0      [点我收藏+]

标签:

  今天一大清早去面试, 公司距离我家还挺近的, 花了一个小时走着去, 也顺路印下简历, 理理思路, 到了公司面试官什么的都不错, 还给我讲了很多知识, 收货也是满满的, 总结下今天都遇到了哪些问题, 调整调整状态.

  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开发--面试

标签:

原文地址:http://www.cnblogs.com/JianweiWang/p/5333165.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!