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

Media:OpenGL ES、EAGL、Quartz、Core Animation、Core Audio、                          Open Audio Library、Media Player

Core Services:Address Book、Core Foundation

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

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

Cocoa层(NSURL、Bonjour、game Kit、webKit)

Core Foundation层(基于C的CFNetwork、CFNetServices)

OS 层(基于C的BSD 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网络开发框架:AFN和ASI(非ARC),附属框架SSZipArchiver(下载地址:https://github.com/samsoffes/ssziparchive

AFN VS ASI

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

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

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

针对JSON、XML、Plist、Image四种数据结构封装各自处理器

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

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

扩展功能丰富;

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

10AFN和ASI的选择

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

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

iOS技术面试07:第三方框架的更多相关文章

  1. iOS开发之常用第三方框架(下载地址,使用方法,总结)

    iOS开发之常用第三方框架(下载地址,使用方法,总结) 说句实话,自学了这么久iOS,如果说我不知道的但是又基本上都摸遍了iOS相关知识,但是每次做项目的时候,遇到难一点的地方或者没试过的东西就闷了. ...

  2. iOS开发常用的第三方框架

    1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是G ...

  3. iOS:网络编程的第三方框架:AFNetworking、SDWebImage

    网络编程第三方框架:AFNetworking.SDWebImage 介绍:这些框架是开源的,经过前人的封装.改进,成为使用次数很多的一个性能好的源代码框架,只需要将它导入项目中,就可以使用.因此,在做 ...

  4. iOS技术面试08:其他

    1 客户端安全性处理方式? 1> 网络数据传输(敏感数据[账号\密码\消费数据\银行卡账号], 不能明文发送) 2> 协议的问题(自定义协议, 游戏代练) 3> 本地文件存储(游戏的 ...

  5. iOS技术面试01:多线程与网络

    1. 多线程的底层实现? 1> 首先搞清楚什么是线程.什么是多线程.多线程的使用场合(线程有时被称为轻量级进程,是程序执行流的最小单元.多线程是指软件或者硬件实现多个线程并发执行的技术.多线程的 ...

  6. IOS一些高效的第三方框架库

    MBProgressHUD ——进展指示符库 苹果的应用程序一般都会用一种优雅的,半透明的进度显示效果,不过这个API是不公开的,因此你要是用了,很可能被清除出AppStore.而 MBProgres ...

  7. 提高iOS开发效率的第三方框架等--不断更新中。。。

    1. Mantle Mantle 让我们能简化 Cocoa 和 Cocoa Touch 应用的 model 层.简单点说,程序中经常要进行网络请求,请求到得一般是 json 字符串,我们一般会建一个 ...

  8. IOS 极光推送(第三方框架)

    下载极光推送文件,将以下两个文件导入项目中 APService.h libpushSDK.a #import "HMAppDelegate.h" #import "APS ...

  9. iOS技术面试06:应用程序

    1.NSRunLoop的实现机制,及在多线程中如何使用 NSRunLoop是IOS消息机制的处理模式 >1.NSRunLoop的主要作用:控制NSRunLoop里面线程的执行和休眠,在有事情做的 ...

随机推荐

  1. Django REST framework+Vue 打造生鲜电商项目(笔记五)

    一.viewsets实现商品详情页接口 (1)商品详情页只需要多继承一个类(mixins.RetrieveModelMixin)就可以了,(它的功能就是展示商品详情) class GoodsListV ...

  2. sql server 的触发器的demo例子

    -- ============================================= -- Author: <Author,,Name> -- Create date: < ...

  3. 使用Spring PropertyPlaceholderConfigurer 配置中文出现乱码的解决方法

    在使用org.springframework.beans.factory.config.PropertyPlaceholderConfigurer 读取配置文件时,发现对于中文的处理会出现乱码现象,比 ...

  4. MongoDB 查看存储引擎

    需要登录到具体的主/从节点查询,mongos查询不到 db.serverStatus() 其中有这个 "storageEngine" : {  "name" : ...

  5. Oracle 11g 禁用 SQL Tuning Advisor 与 auto space advisor

    生产上有一套11g数据库alert.log报错ORA-16957: SQL Analyze time limit interrupt.  查询MOS相关文档Troubleshooting: ORA-1 ...

  6. CF280C Game on Tree 概率与期望

    利用期望的线性性,即 $E(a+b)=E(a)+E(b)$. 对于所有点分别求一下期望然后累加即可. code: #include <bits/stdc++.h> #define N 10 ...

  7. The Preliminary Contest for ICPC China Nanchang National Invitational

    目录 Contest Info Solutions A. PERFECT NUMBER PROBLEM D. Match Stick Game G. tsy's number H. Coloring ...

  8. Centos 7.x 设置Lvs+ Keepalived

    [实验环境] Centos 7.2 Nginx  以下为本次试验所使用的地址: VIP:192.168.136.100 LVS-1:192.168.136.170 LVS-2:192.168.136. ...

  9. 幽默的讲解六种Socket I/O模型

    很幽默的讲解六种Socket I/O模型 本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教. 一:select模型 二:WSAAsyncSele ...

  10. codeforces396C

    On Changing Tree CodeForces - 396C You are given a rooted tree consisting of n vertices numbered fro ...