当前位置: 首页 > news >正文

网站建设的技巧有哪些方面做画册的国外网站

网站建设的技巧有哪些方面,做画册的国外网站,购物网站主页模版,wordpress保存远程图片大小在iOS 里面,项目打开就会运行一个主线程,所有的UI都在主线程里进行.其他网络请求或者耗时操作理论上也可以在主线程运行,但是如果太耗时,那么就会影响主线程其他UI.所以需要开字线程来进行耗时操作,子线程进行完耗时操作之后,如果项目需求有需要刷新UI,或者改变UI,一定得回到主…在iOS 里面,项目打开就会运行一个主线程,所有的UI都在主线程里进行.其他网络请求或者耗时操作理论上也可以在主线程运行,但是如果太耗时,那么就会影响主线程其他UI.所以需要开字线程来进行耗时操作,子线程进行完耗时操作之后,如果项目需求有需要刷新UI,或者改变UI,一定得回到主线程进行修改/刷新. 下面介绍三种iOS里线程模式 前情提要:在View上创建一个UILabel, 点击屏幕空白处开启一个子线程,在子线程里模拟耗时操作,耗时操作完毕后需要改变UILabel上的文字. - (void)viewDidLoad {[super viewDidLoad];self.markLabel [[UILabel alloc]initWithFrame:CGRectMake(50, 200, 300, 40)];self.markLabel.backgroundColor [UIColor greenColor];self.markLabel.textAlignment NSTextAlignmentCenter;self.markLabel.text 子线程开启之前的String;[self.view addSubview:self.markLabel]; } 1.NSThread 1.1. 点击空白页面,开启线程(先模拟不在主线程刷新UI的错误写法) - (void)touchesBegan:(NSSetUITouch * *)touches withEvent:(UIEvent *)event {//模拟线程耗时操作,并在耗时操作后改变label的String[self threadModel]; }- (void)threadModel {NSThread * thread [[NSThread alloc]initWithTarget:self selector:selector(threadUpdateUI) object:nil];[thread start]; }- (void)threadUpdateUI {//模拟耗时操作[NSThread sleepForTimeInterval:2];//耗时操作后直接刷新UI (这是模拟错误的方法)self.markLabel.text 修改后的Sting; } 按照以上的写法,直接报错,报错提示如下图所示:  must be used from main thread only : 一定且只有从主线程刷新 因此可知,需要进入主线程去刷新,那么NSTread模式怎么进入主线程呢? 看下面的代码 - (void)touchesBegan:(NSSetUITouch * *)touches withEvent:(UIEvent *)event {//模拟线程耗时操作,并在耗时操作后改变label的String[self threadModel]; }- (void)threadModel {NSThread * thread [[NSThread alloc]initWithTarget:self selector:selector(threadUpdateUI) object:nil];[thread start]; }- (void)threadUpdateUI {//模拟耗时操作[NSThread sleepForTimeInterval:2];//NSThread 找到主线程[self performSelectorOnMainThread:selector(uodateMainUI) withObject:nil waitUntilDone:NO];}- (void)uodateMainUI {self.markLabel.text 修改后的Sting; } 以上是NSThread 找到主线程,并且刷新UI的方法. 接下来介绍CGD和NSOperation 找到主线程的方法 2.CGD - (void)touchesBegan:(NSSetUITouch * *)touches withEvent:(UIEvent *)event {//模拟线程耗时操作,并在耗时操作后改变label的String[self CGDModel]; }- (void)CGDModel {//队列dispatch_queue_t queue dispatch_get_global_queue(0, 0);/*我这里使用global_queue来模拟,你也可以使用并发队列/串行队列模拟dispatch_queue_t queue dispatch_queue_create(并发队列, DISPATCH_QUEUE_CONCURRENT);dispatch_queue_t queue dispatch_queue_create(串行队列, DISPATCH_QUEUE_SERIAL);但是不能用主队列来模拟,因为主队列本身就有主线程*///任务dispatch_async(queue, ^{//模拟耗时操作[NSThread sleepForTimeInterval:2];//CGD模式回到主线程,因为CGD和NSOperation只有任务和队列的概念,所以主队列就是主线程dispatch_async(dispatch_get_main_queue(), ^{self.markLabel.text 修改后的Sting;});}); }3.NSOperation - (void)touchesBegan:(NSSetUITouch * *)touches withEvent:(UIEvent *)event {//模拟线程耗时操作,并在耗时操作后改变label的String[self operationModel]; }- (void)operationModel {//队列NSOperationQueue * queue [[NSOperationQueue alloc]init];//任务[queue addOperationWithBlock:^{//模拟耗时操作[NSThread sleepForTimeInterval:2];//找到主队列(NSOperation只有任务和队列的概念,所以主队列就是主线程)[NSOperationQueue.mainQueue addOperationWithBlock:^{self.markLabel.text 修改后的Sting;}];}]; }
http://www.hkea.cn/news/14256339/

相关文章:

  • 郑州做网站最好的公司5条国内最新新闻
  • 网站登录慢眼镜网站怎么做竞价
  • 高端网站建设与发展打开app登录
  • 网站运营的目的及意义龙华公司
  • 网站建设计划书模板百度区域代理
  • 公司网站必须做可信认证吗开发一个app要多少钱呢
  • dede网站 地图什么做做图素材网站 千
  • app公司网站建设桂林漓江景区
  • 网站建设需要学ps吗大连招标信息网
  • 上海网站建设价深圳机械网站建设
  • 如何建设一个好的企业网站涉县移动网站建设
  • react 做网站保健品网站源代码
  • gateface能用来做网站吗做专业网站设计多少钱
  • 广宁县住房建设局网站免费企业信息发布平台
  • 天津建设项目招投标网站做网站需要那些技术
  • 网站详情页怎么做微信公众号分销功能
  • 富通建设工程有限公司网站网站设计酷站
  • 手表网站建设规划书wordpress联系人表单
  • 东莞网站建设工作推广怎么推
  • 网页 制作网站佛山网站提升排名
  • 众意网站建设zyecnwordpress sina
  • 软考高级网络规划设计师seo排名规则
  • 整站关键词排名优化淘宝客wordpress模板
  • 昆山h5网站建设怎么做二维码转到网站
  • 合肥网站建设平台个人网站一定要备案吗
  • 网站标签怎么做跳转广州高端网站制作公司
  • 郑州网站建设灵秀广州网页设计公司推荐
  • 无锡工程建设招标网站外贸进出口代理公司
  • 网站收录情况网站制作 番禺
  • 筑巢网站后台管理系统建一个自己的网站有什么用