iOS学习—网络多线程部分
学习笔记666
这个作者很懒,什么都没留下…
展开
-
NSOperation的基本使用
//// ViewController.m// NSOperation的基本使用///* NSOperation的作用: 配合使用NSOpertaion和NSOperationQueue也能实现多线程编程 NSOpertaion和NSOperationQueue实现多线程的具体步骤: 先将需要执行的操作封装到一个NSOperation对象中; 然后将NSOperatio原创 2015-12-30 22:51:25 · 424 阅读 · 0 评论 -
AFN网络框架2.x版—文件上传
/** * 文件上传 */- (void)uploadFile{ //1.获得请求管理者 AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager]; //2.发送请求 //2.1封装请求参数(parameters:只能放非文件参数) NSMut原创 2016-01-03 10:52:01 · 510 阅读 · 0 评论 -
AFN网络框架2.x版—网络监控
- (void)viewDidLoad { [super viewDidLoad]; //1.获得网络监控管理着 AFNetworkReachabilityManager *mgr = [AFNetworkReachabilityManager sharedManager]; //2.设置网络状态改变后的处理 [mgr setReacha原创 2016-01-03 11:02:27 · 480 阅读 · 0 评论 -
UIWebView的基本使用
//// ViewController.m// UIWebView的基本使用#import "ViewController.h"#import "MBProgressHUD+MJ.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UIWebView *webView;@end@impl原创 2016-01-03 12:42:14 · 453 阅读 · 0 评论 -
NSURLSession的简单使用
/* 使用NSURLSession肯定是异步,在子线程做耗时操作 我们只需要 创建一个session,发起一个任务,让任务resume */- (void)viewDidLoad { [super viewDidLoad]; //1.url NSURL *url = [NSURL URLWithString:@"http://localhost/video原创 2016-01-08 20:13:54 · 424 阅读 · 0 评论 -
NSURLSession下载和使用SSZipArchive解压缩
#import "ViewController.h"#import "SSZipArchive.h"@interface ViewController ()@end@implementation ViewController/* NSURLSession下载,默认将下载的文件保存到tmp目录下,如果回调方法里什么事情都没做。 tmp目录里面的东西会自动删除。 */-原创 2016-01-08 20:49:39 · 909 阅读 · 0 评论 -
NSURLSession下载(断点续传)
//// ViewController.m#import "ViewController.h"@interface ViewController ()/**下载任务*/@property(nonatomic,strong)NSURLSessionDownloadTask *downloadTask;/**全局管理的会话*/@property(nonatomic,strong原创 2016-01-10 11:26:32 · 596 阅读 · 0 评论 -
NSURLSession下载的进度监测
#import "ViewController.h"@interface ViewController ()@end@implementation ViewController- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ //1.url NSString *str = @"h原创 2016-01-10 10:38:24 · 2037 阅读 · 0 评论 -
NSURLSession的强引用问题
使用NSURLSession要注意,他对代理是强引用#pragma mark - NSURLSessionDownloadDelegate/** * 1.下载完成后被调用的方法(iOS7和iOS8都必须实现) */- (void)URLSession:(NSURLSession *)session downloadTask:(NSURLSessionDownloadTask *)原创 2016-01-10 11:34:28 · 854 阅读 · 0 评论 -
AFN网络框架(session的简单示例)
//// ViewController.m/** AFN小结 功能: - 对NSURLSession & NSURLConntion的封装 - 提供了反序列化的方法 - 提供了完善的错误处理机制 在网络开发中的,最大的变化的部分--> NSURLResquest 1. HTTP的方法:GET/POST/PUT/DELEGATE 2. 请求体 - 内容的类型 Cont原创 2016-01-10 11:46:51 · 785 阅读 · 0 评论 -
GCD(Grand central dispatch)
GCD(Grand central dispatch)如果我们有一件工作,想要在某条指定的thread上执行,现在最简单的方式大概就是呼叫GCD。GCD其实包含相当多的API,是一群C function的组合,其中我们最常用的是 dispatch_async。dispatch_async 这个function,可以让我们选择要在哪个指定的thread上,用非同步的方式执行一个block。d原创 2016-01-28 15:45:56 · 441 阅读 · 0 评论 -
AFNetworking使用过程中的几个细节
0.先来看一下AFN如何发送GET请求的 // 发送网络请求NSMutableDictionary *params = [NSMutableDictionary dictionary];params[@"a"] = @"category";params[@"c"] = @"subscribe";[[AFHTTPSessionManager manager] GET:@"https://api.原创 2016-07-06 16:45:24 · 4077 阅读 · 0 评论 -
iOS开发中的HTTPS
官方文档: https://developer.apple.com/library/content/releasenotes/General/WhatsNewIniOS/Articles/iOS9.html 高手博文: https://zhuanlan.zhihu.com/p/22749689原创 2016-12-14 17:29:12 · 547 阅读 · 0 评论 -
iOS多线程介绍
进程广义上讲,进程是系统中正在运行是一个应用程序。每个进程之间都是独立的,这就意味着一个进程是不能访问另一个进程。 进程在处理器上是交替运行的,进程的状态也是不断在发生变化。 iOS线程介绍-线程是进程的基本执行单元; -进程的所有任务都在线程中执行。换句话说,就是一个进程要想执行任务必须有一个线程,这个线程我们通常称之为“主线程”。在iOS应用开发中,我们也称之为“UI线程”。 通常情原创 2016-12-26 20:28:10 · 390 阅读 · 0 评论 -
iOS多线程 - NSThread介绍
多线程实现技术方案pThread、NSThread、GCD、NSOperationNSThread NSThread是经过苹果封装后的,面向对象的,我们可以直接来操控线程对象。我们创建一个iOS项目来演示//// ViewController.m// TestThread//#import "ViewController.h"@interface ViewController ()@en原创 2016-12-27 16:36:32 · 320 阅读 · 0 评论 -
iOS多线程 - NSThread锁的使用(多线程资源共享的问题)
之前已经了解了NSThread如何创建线程,以及线程当中的2个属性。 现在我们用一个购票案例,来模拟一下线程当中资源共享的问题。1.创建一个售票类//// TicketManager.h// TestThread#import <Foundation/Foundation.h>@interface TicketManager : NSObject// 开始卖票- (void)star原创 2016-12-27 20:36:21 · 414 阅读 · 0 评论 -
iOS多线程 - GCD介绍
iOS多线程 - GCD介绍GCD是苹果为了多核并行运算,而提出的一套解决方案。 能够自动的管理线程的生命周期,比如创建线程、任务调度、销毁线程等,都不用开发者管理, 我们只需要告诉GCD干什么就行了。#pragma mark - GCD- (void)clickGCD{ NSLog(@"执行GCD"); dispatch_async(dispatch_get_global_原创 2016-12-28 10:57:34 · 368 阅读 · 0 评论 -
iOS多线程 - GCD_Group
iOS多线程 - GCD_Group在我们的实际项目当中,经常会有这样的需求:在多个任务异步处理之后,我们需要统一的一个回调通知,来告诉我所有的任务都已经结束了。 这个时候我们就可以用到dispatch_group。它有个作用就是,当所有任务完成之后会调用“ NSLog(@"执行GCD"); // 创建一个并行的queue dispatch_queue_t queue = di原创 2016-12-28 15:01:57 · 508 阅读 · 0 评论 -
AFN网络框架2.x版—返回XML的情况
//// ViewController.m#import "ViewController.h"#import "AFNetworking.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad { [super viewDidLoad];}/原创 2016-01-03 10:40:44 · 427 阅读 · 0 评论 -
AFN网络框架2.x版—日志输出加强
注意:只有.m文件Foundation+Log.m#import @implementation NSDictionary (Log)- (NSString *)descriptionWithLocale:(id)locale{ NSMutableString *str = [NSMutableString string]; [str appendSt转载 2016-01-03 10:21:52 · 385 阅读 · 0 评论 -
NSOperation的其他设置
//监听操作- (void)operationListen{ NSBlockOperation *operation = [NSBlockOperation blockOperationWithBlock:^{ NSLog(@"NSBlockOperation--下载图片1--%@",[NSThread currentThread]); }];原创 2015-12-31 22:36:17 · 370 阅读 · 0 评论 -
视频播放— MPMoviePlayerViewController的简单认识
1.自定义MPMoviePlayerViewController//// YKDMoviePlayerViewController.h#import @interface YKDMoviePlayerViewController : MPMoviePlayerViewController@end//// YKDMoviePlayerViewController.m原创 2016-01-01 15:46:48 · 496 阅读 · 0 评论 -
NSURLConnection — POST请求
//1.表单验证(输入验证) NSString *username = self.usernameField.text; if (username.length == 0) { //没有输入用户名 //弹框提示 return; } NSString *pwd = self.pwdField.text; if (pwd.leng原创 2016-01-01 16:15:44 · 721 阅读 · 0 评论 -
NSURLConnection — GET请求
//// ViewController.m// NSURLConnection — GET请求//#import "ViewController.h"@interface ViewController ()@property (weak, nonatomic) IBOutlet UITextField *usernameField;@property (weak, nona原创 2016-01-01 11:40:58 · 263 阅读 · 0 评论 -
NSURLConnection — GET请求的第二种方式
//// ViewController.m// NSURLConnection — GET请求//#import "ViewController.h"@interface ViewController () @property (weak, nonatomic) IBOutlet UITextField *usernameField;@property (weak, non原创 2016-01-01 13:51:10 · 330 阅读 · 0 评论 -
解析XML数据
/** * 解析XML数据 */- (void)parserXMLData:(NSData *)data{ //1.创建解析器 NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data]; //2.设置代理 parser.delegate = self; //3.开原创 2016-01-01 17:19:36 · 358 阅读 · 0 评论 -
大文件的下载(显示进度条)
//// ViewController.m// 大文件的下载/* 如果文件比较小,下载方式会比较多 直接用NSData的+ (id)dataWithContentsOfURL:(NSURL *)url; 利用NSURLConnection发送一个HTTP请求去下载 如果是下载图片,还可以利用SDWebImage框架 */#import "ViewController.h"原创 2016-01-01 19:59:30 · 2964 阅读 · 0 评论 -
压缩文件处理(第三方解压缩框架——SSZipArchive)
下载地址:https://github.com/samsoffes/ssziparchive注意:需要引入libz.dylib框架// UnzippingNSString *zipPath=@"path_to_your_zip_file";NSString *destinationPath=@"path_to_the_folder_where_you_want_it_unzippe原创 2016-01-02 13:04:33 · 1328 阅读 · 0 评论 -
大文件下载(封装)
1.封装//// YKDFileDownloader.h// 文件下载器// 一个YKDFileDownloader下载一个文件#import @interface YKDFileDownloader : NSObject//所需要下载的文件的远程URL(https://xxx.com/1.zip)@property(nonatomic,copy)NSString *ur原创 2016-01-02 09:55:38 · 800 阅读 · 0 评论 -
大文件下载(暂停和恢复下载)
//// ViewController.m// 大文件的下载/* 如果文件比较小,下载方式会比较多 直接用NSData的+ (id)dataWithContentsOfURL:(NSURL *)url; 利用NSURLConnection发送一个HTTP请求去下载 如果是下载图片,还可以利用SDWebImage框架 */#import "ViewController.h"原创 2016-01-01 20:57:03 · 1564 阅读 · 1 评论 -
多线程断点下载
1.文件下载类(父类)//// FileDownloader.h// 文件下载器// 一个FileDownloader下载一个文件#import @interface FileDownloader : NSObject{ BOOL _downloading;}/** * 所需要下载文件的远程URL(连接服务器的路径) */@property (nonato原创 2016-01-02 15:54:47 · 365 阅读 · 0 评论 -
文件上传的基础知识
//// HMViewController.m// 01-文件上传//#import "HMViewController.h"#define HMEncode(str) [str dataUsingEncoding:NSUTF8StringEncoding]@interface HMViewController ()@end@implementation HMVie转载 2016-01-02 16:59:45 · 323 阅读 · 0 评论 -
NSURLConnection — POST-JSON
// 1.创建请求 NSURL *url = [NSURL URLWithString:@"http://192.168.1.200:8080/MJServer/order"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; request.HTTPMethod = @"PO原创 2016-01-02 17:25:07 · 437 阅读 · 0 评论 -
NSURLCache
// 1.创建请求 NSURL *url = [NSURL URLWithString:@"http://localhost:8080/MJServer/video"]; NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url]; // 2.设置缓存策略(有缓存就用缓存,没有缓存转载 2016-01-02 19:03:35 · 354 阅读 · 0 评论 -
检查网络状态 — 静态检测
//// ViewController.m// 检查网络状态 — 静态检测/* Reachability依赖于SystemConfiguration.framework这个框架 并且是非ARC的。所以需要在 Build Phases-Compile Soures-Reachability.m下 双击添加:-fno-objc-arc */#import "ViewContr原创 2016-01-02 19:41:10 · 566 阅读 · 0 评论 -
检查网络状态—实时监测
//// ViewController.m// 检查网络状态/* Reachability依赖于SystemConfiguration.framework这个框架 并且是非ARC的。所以需要在 Build Phases-Compile Soures-Reachability.m下 双击添加:-fno-objc-arc */#import "ViewController.h"原创 2016-01-02 20:26:58 · 1545 阅读 · 0 评论 -
AFN网络框架2.x版—GET请求简单示例
//1.获取请求管理者(管理请求,帮助发请求) AFHTTPRequestOperationManager *mgr = [AFHTTPRequestOperationManager manager]; //声明服务器的影响是JSON,所以下面responseObject是字典。(默认) //mgr.responseSerializer = [AFJSONRes原创 2016-01-03 09:11:01 · 356 阅读 · 0 评论 -
iOS多线程 - NSOperation介绍
NSOperation实际是GCD的封装。 两种使用方式 1.NSInvocationOperation和NSBlockOperation 2.自定义类继承NSOperation。相关概念: 1.NSOperationQueue,队列,可以认为是一个线程池。addOperation #添加到队列setMaxConcurrentOperationCount #设置线程池中最大变化数2.状态r原创 2016-12-29 09:20:57 · 268 阅读 · 0 评论