Skip to content

Latest commit

 

History

History
42 lines (28 loc) · 1.47 KB

File metadata and controls

42 lines (28 loc) · 1.47 KB

阿里巴巴面试题

一面

  1. 为什么要用Alamofire而不用原生的NSURLSession,Alamofire的优势是什么?
  2. 如果让你来封装一个网络库,类似于Alamofire或者SDWebImage,你会如何实现?
  3. 在网络库中,如何针对TableView快速滚动过程中的图片额外渲染进行优化(网络库不能持有TableView)?

二面

  1. iOS的系统架构是怎么样的?常用SDK有哪些?
  2. 了解HTTP协议吗?GET和POST的区别是什么?
  3. 对安全方面有何了解?如何应对web页面被劫持?了解HTTPS加密解密的过程吗

个人答案

1.1
  • 具有更丰富的功能:如后台传输,断点续传等
  • 链式异步处理:处理callback更加优雅
1.2 略,可以去看一下源码
1.3

可以参考SDWebImage:

  • 根据提供的UIImageView进行优化:当快速滚动时,需要对Cell进行重用,所以当UIImageView被重设url时,可以cancel掉之前的url请求
  • 设置接口,限制全局并发量
2.1
  • iOS系统架构:
    • Cocoa Touch Layer 可触摸层
    • Media Layer 媒体层
    • Core Services Layer 核心服务层
    • Core OS Layer 核心操作系统层

2.2 & 2.3

iOS HTTP & HTTPS 详解 - 持续更新中