美文网首页
今日头条iOS高级工程师第1轮面试内容

今日头条iOS高级工程师第1轮面试内容

作者: 梦妍都很好 | 来源:发表于2022-04-27 13:08 被阅读0次

    面试形式:电话面试

    1. 你平时怎么解决网络请求的依赖关系:当一个接口的请求需要依赖于另一个网络请求的结果

    解析:

    • 办法1:线程:NSOperation 操作依赖和优先级
    [operationB addDependency:operationA]; // 操作B依赖于操作
    
    
    • 办法2:逻辑:在上一个网络请求的响应回调中进行下一网络请求的激活

    2. 关于RAC你有怎样运用到解决不同API依赖关系

    • 信号的依赖

    使用场景是当信号A执行完才会执行信号B,和请求的依赖很类似,例如请求A请求完毕才执行请求B,我们需要注意信号A必须要执行发送完成信号,否则信号B无法执行

    //这相当于网络请求中的依赖,必须先执行完信号A才会执行信号B
      //经常用作一个请求执行完毕后,才会执行另一个请求
      //注意信号A必须要执行发送完成信号,否则信号B无法执行
      RACSignal * concatSignal = [self.signalA concat:self.signalB];
    
      //这里我们是对这个拼接信号进行订阅
      [concatSignal subscribeNext:^(id x) {
    
          NSLog(@"%@",x);
    
      }];
    
    

    3. 编译链接你有了解多少

    解析:这个涉及到简单知识,可参考www.360doc.com/content/17/…

    4. 简单介绍下KVO的用法

    解析:首先,简单介绍下KVO的用法,先添加观察者,然后怎样实现监听的代理。关于原理,可以利用runtime的知识进行实现KVO的原理,笔者曾经实现KVO的block和delegate两种形式,可参考www.jianshu.com/p/c1aa85779…

    简单概述下 KVO 的实现原理:

    当你观察一个对象时,一个新的类会动态被创建。这个类继承自该对象的原本的类,并重写了被观察属性的 setter 方法。自然,重写的 setter 方法会负责在调用原 setter方法之前和之后,通知所有观察对象值的更改。最后把这个对象的 isa 指针 ( isa 指针告诉 Runtime 系统这个对象的类是什么 ) 指向这个新创建的子类,对象就神奇的变成了新创建的子类的实例。

    原来,这个中间类,继承自原本的那个类。不仅如此,Apple 还重写了 -class 方法,企图欺骗我们这个类没有变,就是原本那个类。更具体的信息,去跑一下 Mike Ash 的那篇文章里的代码就能明白,这里就不再重复。
    为自己的面试,为自己的跳槽,加油吧 iOS开发

    简历模板+最新iOS题目+提升视频:docs.qq.com/doc/DVWlQam9Qd3B1cEF2

    相关文章

      网友评论

          本文标题:今日头条iOS高级工程师第1轮面试内容

          本文链接:https://www.haomeiwen.com/subject/nktlyrtx.html