• iOS技术面试07:第三方框架


    1ios框架分为cocoa Touch:UIKit、Foundation、附属框架

                  Media:OpenGL ES、EAGLQuartzCore Animation、Core Audio、                          Open Audio Library、Media Player

                  Core Services:Address Book、Core Foundation

                  Core OS:线程、文件、I/O、内存和网络

    2iOS网络编程层次结构四意图

                      Cocoa层(NSURLBonjourgame Kit、webKit) 

                      Core Foundation(基于CCFNetworkCFNetServices)

                      OS 层(基于CBSD socket

    3在 ARC项目中如何正确使用MRC的第三方框架?

    ASIHTTPRequest目前不支持ARC,解决方法如下:

    》选择TARGETS,然后选择BuildnPhases标签

    》展开Compile Sources

    》在所有ASIHTTPRequest相关的文件后面Compiler Flags中加入编译选项-fno-objc-arc

     

    4SDWebImage框架的使用

    https://github.com/rs/SDWebImage下载资源包Download ZIP

    一个UIImageView的类目,给cocoa Touch框架添加了异步下载远程图片以及管理图片缓存的功能

     

    AFNetworking框架的使用:https://github.com/AFNetworking/AFNetworking/

            官网地址:http:afnetworking.com

    使用步骤:

    1)将框架程序拖拽进项目

    2)添加iOS框架引用

         -SystemConfiguration.framework

         -MobileCoreSwevices.framework

    3)修改xxx-prefix.pch文件

           #import< MobileCoreSwevices / MobileCoreSwevices.h>

           #import< SystemConfiguration / SystemConfiguration.h>

    MBProgressHUD框架的使用:https://github.com/jdg/MBProgressHUD

    FMDB框架下载:https://github.com/ccgus/fmdb

    ASI框架的使用:http://github.com/pokeb/asi-http-request/tarball/master

    5不使用第三方框架如何实现文件上传

    使用NSURLConnection发送HTTP请求即可

    6不使用第三方框架如何实现断点续传?

    需要自定义URLRequest的头部的range属性

    7为什么选择第三方框架?第三方框架把复杂的网络底层操作封装成友好的类和方法,并且加入异常处理,从而可以高效的与服务端API进行数据交换;提高开发效率和稳定性

    8选择第三方框架的原则:

    》是否广泛使用,有足够多的技术大牛验证过;

    》尽量保证能够看懂其中的所有代码

    》可以学习编写其中部分方法,但不要去直接修改

    9常用的iOS网络开发框架AFNASI(非ARC,附属框架SSZipArchiver(下载地址:https://github.com/samsoffes/ssziparchive

    AFN VS ASI

    AFN:使用方法为一系列相关的请求定义一个HTTPClient,共用一个BaseURL.

          基于NSURL,性能和稳定性略差;

          只封装了一些功能,满足基本需求,忽略扩展功能;

          针对JSONXMLPlistImage四种数据结构封装各自处理器

    ASI:使用方法每一个请求由构造方法初始化一个实例

          基于CFNetwork,性能稳定性比较高

    扩展功能丰富;

    没有针对数据类型特别封装,只是预留一些各种接口和工具供开发者自行扩展。

    10AFNASI的选择

    AFN适合逻辑简单的应用,适合开发资源上不丰富的团队

    ASI适合已经发展一段时间的应用,或者开发资源相对丰富的团队

  • 相关阅读:
    关于“云计算”
    实现工作流至少需要几张表?
    BPI (业务流程改进)项目的管理沙龙笔记
    对“设计”工作在流程中的重新定位
    面向。。。驱动
    定个小目标
    Redis源码分析Sentinel(1)Sentinel服务器
    Redis源码分析Sentinel(3)主观下线与客观下线
    Redis源码分析Sentinel(2)实例处理的Monitor half
    Redis源码分析Sentinel(4)实例处理的Acting half
  • 原文地址:https://www.cnblogs.com/linxiu-0925/p/5031286.html
Copyright © 2020-2023  润新知