0925-AFN-AF1 UIWebView
2016-03-21 00:10
411 查看
--------------------
面试看看这里 已经淘汰的技术
ASI直接对CFNetwork封装 但是很麻烦 效率仅高一点点 NSURLConnection对CFNetworking封装
ASI里面需要有 Reachability 需要libz
后面有方便的方法 解决ARC 和 非ARC的方法
ASI和AFN的区别(面试题)
AFN默认序列化器 为JSONSerialization 只能接受text/json 这里增加一个 text/plain
AFJSONResponseSerializer
self.acceptableContentTypes = [NSSet setWithObjects:@"text/plain", @"application/json", @"text/json", @"text/javascript", nil];
-----------------
UIWebView就是一个浏览器 先简单了解一下
面试看看这里 已经淘汰的技术
ASI直接对CFNetwork封装 但是很麻烦 效率仅高一点点 NSURLConnection对CFNetworking封装
ASI里面需要有 Reachability 需要libz
后面有方便的方法 解决ARC 和 非ARC的方法
ASI和AFN的区别(面试题)
一、底层实现 1> AFN的底层基于OC的NSURLConnection和NSURLSession 2> ASI的底层基于纯C语言的CFNetwork框架 3> ASI的运行性能 高于 AFN 二、对服务器返回的数据处理 1> ASI没有直接提供对服务器数据处理的方式,直接返回data\string 2> AFN提供了多种对服务器数据处理的方式 * JSON处理 * XML处理 * 其他处理 三、监听请求的过程 1> AFN提供了success和failure两个block来监听请求的过程(只能监听成功和失败) * success : 请求成功后调用 * failure : 请求失败后调用 2> ASI提供了3套方案,每一套方案都能监听请求的完整过程 (监听请求开始、接收到响应头信息、接受到具体数据、接受完毕、请求失败) * 成为代理,遵守协议,实现协议中的代理方法 * 成为代理,不遵守协议,自定义代理方法 * 设置block 四、在文件下载和文件上传的使用难易度 1> AFN * 不容易监听下载进度和上传进度 * 不容易实现断点续传 * 一般只用来下载不大的文件 2> ASI * 非常容易实现下载和上传 * 非常容易监听下载进度和上传进度 * 非常容易实现断点续传 * 下载或大或小的文件都行 五、ASI提供了更多的实用功能 1> 控制圈圈要不要在请求过程中转 2> 可以轻松地设置请求之间的依赖:每一个请求都是一个NSOperation对象 3> 可以统一管理所有请求(还专门提供了一个叫做ASINetworkQueue来管理所有的请求对象) * 暂停\恢复\取消所有的请求 * 监听整个队列中所有请求的下载进度和上传进度
AFN默认序列化器 为JSONSerialization 只能接受text/json 这里增加一个 text/plain
AFJSONResponseSerializer
self.acceptableContentTypes = [NSSet setWithObjects:@"text/plain", @"application/json", @"text/json", @"text/javascript", nil];
-----------------
UIWebView就是一个浏览器 先简单了解一下
// HMViewController.m #import "HMViewController.h" @interface HMViewController () @property (weak, nonatomic) IBOutlet UIWebView *webView; @end @implementation HMViewController - (void)viewDidLoad { [super viewDidLoad]; self.webView.scrollView.backgroundColor = [UIColor redColor]; // NSURL *url = [NSURL URLWithString:@"http://localhost:8080/MJServer/resources/videos/minion_01.mp4"]; // NSURL *url = [[NSBundle mainBundle] URLForResource:@"02-HTTP" withExtension:@"pptx"]; // HTML5 NSURL *url = [[NSBundle mainBundle] URLForResource:@"salary" withExtension:@"html"]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; // 根据请求去加载对应的资源 [self.webView loadRequest:request]; // 伸缩页面到填充整个webView self.webView.scalesPageToFit = YES; } @end
相关文章推荐
- AppBuilder(二)UseStageMarker
- Android App中DrawerLayout抽屉效果的菜单编写实例
- iOS7之后pch头文件配置方法
- Android APK打包过程概述
- android 捕获全局异常;
- Jackson 忽略不需要的字段
- MindMapper日期该如何进行选定
- 【Android入门日记】二、从最开始开始---创建android工程
- 【Android】关于Rendering Problems android.support.v7.internal.app.WindowsDecorActionBar问题的解决方法
- 【Android入门日记】一、适合新手看的android环境配置(windows下)
- iOS开发证书"此证书的签发者无效"解决方法
- iOS 消息推送原理及实现Demo
- iOS打包app发给测试人员测试
- iOS 在 Xcode 中重命名项目名称
- iOS Provisioning Profile(Certificate)与Code Signing
- Objective-c UIViewController原生态跳转动画
- 当OA遇到微信,通达OA官方微信公众号来啦!
- iOS-虚拟键盘遮盖问题
- iOS 开发之LLDB调试命令初探
- 微信登入,获取用户信息