1 2 3 4 5 | - (NSString *) md5 { const char *cStr = [self UTF8String]; unsigned char result[16]; CC_MD5( cStr, (unsigned int) strlen(cStr), result);[......]<p class="read-more"><a href="https://www.yusian.com/blog/project/2014/11/11/175838465.html">继续阅读</a></p> |
Category Archives: 项目实战(iOS)
Leave a reply
iOS开发中post请求图片上传如何实现
1、网络请求中常用的有Get请求,Post请求,还有Head、Put、Delete、Options、Trace、Connect等
GET | 获取指定资源 |
POST | 向指定资源提交数据进行处理请求,在RESTful风格中用于新增资源 |
HEAD | 获取指定资源头部信息 |
PUT | 替换指定资源(不支持浏览器操作) |
DELETE | 删除指定资源 |
OPTIONS | 允许客户端查看服务器的性能 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断 |
CONNECT | 预留给能够将连接改为管道方式的代理服务器(HTTP代理使用) |
[……]
多线程技术NSOperationQueue的2种队列操作示例
1、NSOperation的两个子类NSBlockOperation与NSInvocationOperation,前者通过Block实现队列执行体,后者通过调用方法实现。
2、创建好NSOperation任务后,加入到系统队列,分为自定义队列即通过NSOperationQueue创建,或加入到主队列[NSOperationQueue mainQueue]
3、以上两步即可搞定,NSOperation/NSOperationQueue中程序不需要关心同步/异步、串行/并行问题,由框架自动处理,因此使用起来更方便更安全。
4、操作任务一添加到队列中即会执行,这一点与GCD不同。
5、如果需要指定任务的先后执行任务,可使用NSOperation的 addDependency: 方法,如 [op2 addDependency:op1]表示op2依赖于op1,因此会在op1后被执行。(注意不要出现循环依赖)
6、如果需要限制线程数,可通过NSOperationQueue的 setMaxConcurrentOperationCount: 方法实现,如图片下载任务在WiFi环境中线程数为6,3G环境中为3[……]
多线程技术GCD的8种队列请求示例
1、串行队列同步请求
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #pragma mark 1、串行队列同步请求 - (void)gcd1 { // 创建一个串行队列dispatch_queue_create(标识, 串行队列),DISPATCH_QUEUE_SERIAL 表示串行队列 dispatch_queue_t queue = dispatch_queue_create("gcd1", DISPATCH_QUEUE_SERIAL); // 发起一个同步任务并执行10次:dispatch_sync(dispatch_queue_t queue, ^{ code })是同步执行函数 for (int i = 0; i < 10; i++) { dispatch_sync(queue, ^{ // 打印当前线程 NSLog(@"第 %d 次 - %@", i, [NSThread currentThread]); }); } // 结论:串行任务按顺序执行,同步任务按顺序执行,无并发数,当前只有一个线程,因此在线程1按顺序执行 } |
运行结果:[……]