Objective-C 笔记 – 网络请求
获取页面数据
1 | - (void)viewDidLoad { |
头信息
1 | // URL |
缓存
1 | // URL |
cachePolicy
定义缓存的类型,是个枚举类型
- NSURLRequestUseProtocolCachePolicy = 0,默认缓存策略
- NSURLRequestReloadIgnoringLocalCacheData = 1,忽略本地缓存,新闻等APP常用
- NSURLRequestReturnCacheDataElseLoad = 2,返回缓存数据,如果没有缓存从服务器加载
- NSURLRequestReturnCacheDataDontLoad = 3,返回缓存数据,如果没有缓存,就空着
回调代码块
1 | // 发送请求 |
参数
- response(NSHTTPURLResponse) 服务器的响应
- URL 服务器返回的URL,绝大部分和请求的URL一样,重定向时不一样
- MIMEType 二进制数据文件类型
- expectedContentLength 下载文件的长度
- textEncodingName 文本编码名称
- suggestedFilename 服务器建议的保存文件名称
- statusCode 状态码
- allHeaderFields 所有相应头的内容
- data 返回数据
- connectionError 错误
JSON反序列化
1 | [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) { |
一个JSON对象应该具有以下属性
- 顶级节点是一个NSArray 或 NSDictionary
- 所有对象必须是NSString、NSNumber、NSArray、NSDictionary、NSNull
- 所有字典的key必须是NSString
- NSNumber 不能是无理数或空
options
参数
- NSJSONReadingMutableContainers 容器节点是可变的
- NSJSONReadingMutableLeaves 子节点是可变的
- NSJSONReadingAllowFragments 允许顶级节点不是NSArray或NSDictionary
PList反序列化
1 | [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse * _Nullable response, NSData * _Nullable data, NSError * _Nullable connectionError) { |
options
参数
- NSPropertyListImmutable 不可变
- NSPropertyListMutableContainers 容器可变
- NSPropertyListMutableContainersAndLeaves 容器和子节点都可变
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 怠惰のコエ - imba久期 BLOG!
评论