iOS技术面试07:第三方框架
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:第三方框架的更多相关文章
- iOS开发之常用第三方框架(下载地址,使用方法,总结)
iOS开发之常用第三方框架(下载地址,使用方法,总结) 说句实话,自学了这么久iOS,如果说我不知道的但是又基本上都摸遍了iOS相关知识,但是每次做项目的时候,遇到难一点的地方或者没试过的东西就闷了. ...
- iOS开发常用的第三方框架
1. AFNetworking 在众多iOS开源项目中,AFNetworking可以称得上是最受开发者欢迎的库项目.AFNetworking是一个轻量级的iOS.Mac OS X网络通信类库,现在是G ...
- iOS:网络编程的第三方框架:AFNetworking、SDWebImage
网络编程第三方框架:AFNetworking.SDWebImage 介绍:这些框架是开源的,经过前人的封装.改进,成为使用次数很多的一个性能好的源代码框架,只需要将它导入项目中,就可以使用.因此,在做 ...
- iOS技术面试08:其他
1 客户端安全性处理方式? 1> 网络数据传输(敏感数据[账号\密码\消费数据\银行卡账号], 不能明文发送) 2> 协议的问题(自定义协议, 游戏代练) 3> 本地文件存储(游戏的 ...
- iOS技术面试01:多线程与网络
1. 多线程的底层实现? 1> 首先搞清楚什么是线程.什么是多线程.多线程的使用场合(线程有时被称为轻量级进程,是程序执行流的最小单元.多线程是指软件或者硬件实现多个线程并发执行的技术.多线程的 ...
- IOS一些高效的第三方框架库
MBProgressHUD ——进展指示符库 苹果的应用程序一般都会用一种优雅的,半透明的进度显示效果,不过这个API是不公开的,因此你要是用了,很可能被清除出AppStore.而 MBProgres ...
- 提高iOS开发效率的第三方框架等--不断更新中。。。
1. Mantle Mantle 让我们能简化 Cocoa 和 Cocoa Touch 应用的 model 层.简单点说,程序中经常要进行网络请求,请求到得一般是 json 字符串,我们一般会建一个 ...
- IOS 极光推送(第三方框架)
下载极光推送文件,将以下两个文件导入项目中 APService.h libpushSDK.a #import "HMAppDelegate.h" #import "APS ...
- iOS技术面试06:应用程序
1.NSRunLoop的实现机制,及在多线程中如何使用 NSRunLoop是IOS消息机制的处理模式 >1.NSRunLoop的主要作用:控制NSRunLoop里面线程的执行和休眠,在有事情做的 ...
随机推荐
- Django REST framework+Vue 打造生鲜电商项目(笔记五)
一.viewsets实现商品详情页接口 (1)商品详情页只需要多继承一个类(mixins.RetrieveModelMixin)就可以了,(它的功能就是展示商品详情) class GoodsListV ...
- 聊聊rocketmq的sendBatchMessage
序 本文主要研究一下rocketmq的sendBatchMessage SendMessageRequestHeader rocketmq-all-4.6.0-source-release/commo ...
- python - django (auth 的使用)
# """ 1. 创建用户: python manage.py createsuperuser 2. from django.contrib import auth au ...
- MongoDB 如何使用内存?为什么内存满了?
最近接到多个MongoDB内存方面的线上case及社区问题咨询,主要集中在: 为什么我的 MongoDB 使用了 XX GB 内存? 一个机器上部署多个 Mongod 实例/进程,WiredTiger ...
- am335x system upgrade rootfs custom service using systemd script(十七)
1 Scope of Document systemd 是一个 Linux 系统基础组件的集合,提供了一个系统和服务管理器,运行为 PID 1 并负责启动其它程序.功能包括:支持并行化任务: ...
- TensorFlow(十):卷积神经网络实现手写数字识别以及可视化
上代码: import tensorflow as tf from tensorflow.examples.tutorials.mnist import input_data mnist = inpu ...
- Kmeans聚类(lena图)
lena512.raw 下载地址:https://files.cnblogs.com/files/jzcbest1016/lena512_20171219131444306.rar .raw文件可以用 ...
- 【原创】go语言学习(十五)IO操作2
目录 文件打开和读写 读取压缩文件 bufio原理和cat命令实现 defer详解 文件打开和读写 1. 文件是存储在外部介质上的数据集合. A. 文件分类:文本文件和二进制文件 B. 文件存取方式: ...
- Mac佳软之Understand---Android源码分析阅读神器
下载地址, 密码:gebp 供大家体验, 请大家支持正版!!! https://www.jianshu.com/p/06f25d9131de
- Selenium+Python附件上传
在自动化测试过程中,我们会经常遇到附件上传,而附件上传主要分为两种:input型.非input型,我们本章就两种不同类型的上传方式讲解: (1)input型 <input id="tx ...