58面试问题点总结

上午参加的58同城的面试,感觉受益很多,发现自己不会的东西太多太多,总以为学习的多了就好,各种语言都学习下,可是58的面试官很真诚的为我讲解了这样做的问题,深有感触,准备静心一段时间,好好把常用的iOS一些框架底层了解一下。

面试问题:
JSON 和XML的区别?

AFN和ASI的区别?
答案:1.底层实现
1> AFN的底层基于OC的NSURLConnection和NSURLSession
2> ASI的底层基于纯C语言的CFNetwork框架
3> ASI的运行性能 高于 AFN

2.对服务器返回的数据处理
1> ASI没有直接提供对服务器数据处理的方式,直接返回data\string
2> AFN提供了多种对服务器数据处理的方式

  • JSON处理
  • XML处理
  • 其他处理

3.监听请求的过程
1> AFN提供了success和failure两个block来监听请求的过程(只能监听成功和失败)

  • success : 请求成功后调用
  • failure : 请求失败后调用

2> ASI提供了3套方案,每一套方案都能监听请求的完整过程
(监听请求开始、接收到响应头信息、接受到具体数据、接受完毕、请求失败)

  • 成为代理,遵守协议,实现协议中的代理方法
  • 成为代理,不遵守协议,自定义代理方法
  • 设置block

4.在文件下载和文件上传的使用难易度
1> AFN

  • 不容易监听下载进度和上传进度
  • 不容易实现断点续传
  • 一般只用来下载不大的文件

2> ASI

  • 非常容易实现下载和上传
  • 非常容易监听下载进度和上传进度
  • 非常容易实现断点续传
  • 下载或大或小的文件都行

5.ASI提供了更多的实用功能
1> 控制圈圈要不要在请求过程中转
2> 可以轻松地设置请求之间的依赖:每一个请求都是一个NSOperation对象
3> 可以统一管理所有请求(还专门提供了一个叫做ASINetworkQueue来管理所有的请求对象)

  • 暂停\恢复\取消所有的请求
  • 监听整个队列中所有请求的下载进度和上传进度
    AFN和ASI的对比的参照图
    http://wenku.baidu.com/link?url=PAzbEWzLxF9U499tWk9h_9ekrAr27O3_OeyGYaBUL4K6EbHn3VMYahbEkoIwzXxC3mWfvhCROQmW8uyiXJhWAcct6Y9KATNPHACZfDPt2US

系统的UIImage imageWithName:方法和UIImage imageWithContentsOfFile:区别?

你可能感兴趣的:(58面试问题点总结)