文档章节

IOS:使用NSOperationQueue和NSOperation执行耗时操作

daveztong
 daveztong
发布于 2014/11/06 21:25
字数 241
阅读 84
收藏 0

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

当执行如查询数据,连接网络等耗时操作时,为了不让UI被阻塞,通常是另起一个线程来执行耗时的任务,当使用线程来处理时如果逻辑编写稍有不慎就容易产生各种各样的错误,iOS也考虑到了这个问题,所以为了减轻程序员的痛苦,专门提供了NSOperationQueue和NSOperation来处理耗时操作。 使用方法很简单,如:
NSOperationQueue* operationQueue = [NSOperationQueue new];
NSInvocationOperation* operation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(refreshStaffsWithOperation) object:nil];
[operationQueue addOperation:operation];
我这里是执行的一个从网络上获取数据的耗时操作,NSInvocationOperation是NSOperation的子类,将operation添加到队列中后,IOS就回自动发起一个线程来执行selector指定的任务。 在非UI线程中不能更新UI界面,所以你可以执行如 [self.tableView performSelectorOnMainThread:@selector(reloadData) withObject:nil waitUntilDone:YES]; 来更新UI界面。

© 著作权归作者所有

daveztong
粉丝 4
博文 93
码字总数 21482
作品 0
成都
程序员
私信 提问
关于iOS多线程,这边勉强可以看看(OC&Swift)

iOS开发多线程总是绕不过的坎,看了很多前辈们优秀的文章,如:关于iOS多线程,我说,你听,没准你就懂了!、谈iOS多线程(NSThread、NSOperation、GCD)编程、iOS多线程:『GCD』详尽总结、i...

Andy_Ron
2018/08/26
0
0
iOS多线程:『NSOperation、NSOperationQueue』详尽总结

iOS多线程:『NSOperation、NSOperationQueue』详尽总结 转载: 原地址https://www.jianshu.com/p/4b1d77054b35 本文首发于我的个人博客:『不羁阁』 文章链接:传送门 本文更新时间:2018年0...

法斗斗
2018/04/20
12
0
iOS多线程编程之NSOperation和NSOperationQueue的使用

目录(?)[-] iOS多线程编程之NSThread的使用 使用 NSOperation的方式有两种 一种是用定义好的两个子类 另一种是继承NSOperation NSInvocationOperation例子 第二种方式继承NSOperation 如何控...

malawo
2013/09/05
36
0
iOS 多线程 NSOperation、NSOperationQueue

1. NSOperation、NSOperationQueue 简介 NSOperation、NSOperationQueue 是苹果提供给我们的一套多线程解决方案。实际上 NSOperation、NSOperationQueue 是基于 GCD 更高一层的封装,完全面向...

鸿鹄当高远
2018/11/30
0
0
iOS三月春招面试经历分享(没offer不是我的锅)

三月春招眼看就已经过半了,还没有找到自己心仪工作的iOS开发者小伙伴,这里给大家分享一下最近去某个大家都很想去的大厂的面试经历,希望对大家跳槽找工作有帮助~ 1、说出你印象最深刻的项目...

_小迷糊
03/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

web前端入门到实战:图解原生dialog标签(非常详细)

在html5中,新增了很多语义化的标签。如footer、header之类的,今天的主角是dialog标签 顾名思义,就是用来定义对话框的。目前只有Chrome和Safari支持该标签,所以用的不多,不过确实挺好用的...

梦想编程
21分钟前
3
0
一些php常用函数积累

本文链接<?php// id: ecffe70d3af54df9bad97b61918ace7d global $ct_path, $ct_log_path;$log_path = "test_php.txt";// 是否先log到buffer,再通过CT_flush()一次性写入文件$......

一字见心
22分钟前
3
0
IntelliJ idea中 注释代码折叠

visual studio中有#region 可以折叠代码,IntelliJ idea 中也有类似功能 //region 描述代码//endregion

format
22分钟前
4
0
oracle表中更改主键

一、数据表有主键但无主键约束名 先删除之前的主键,后添加主键 ,执行SQL: a. alter table 表名 drop primary key; b. alter table 表名 add primary key(想要更改的字段名称); 二、数据表...

_Somuns
24分钟前
3
0
jQuery AJAX提交表单

我有一个名称为orderproductForm的表单,输入的数量不确定。 我想做某种jQuery.get或ajax或类似的事情,它将通过Ajax调用页面,并发送所有形式为orderproductForm的输入。 我想一种方法是做类...

技术盛宴
29分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部