IOS开发基础之摇奖机案例

//  ViewController.m
//  33-摇奖机器
//  Created by 鲁军 on 2021/3/9.
#import "ViewController.h"
@interface ViewController ()
@property (weak, nonatomic) IBOutlet UILabel *lbl1;
@property (weak, nonatomic) IBOutlet UILabel *lbl2;
@property (weak, nonatomic) IBOutlet UILabel *lbl3;
- (IBAction)start:(id)sender;
@property (weak, nonatomic) IBOutlet UIButton *startButton;
//全局队列
@property(nonatomic,strong)NSOperationQueue *queue;
@end@implementation ViewController
- (NSOperationQueue *)queue{if(_queue==nil){_queue = [[NSOperationQueue alloc] init];//设置最大并发数  (并不是线程数字)//_queue.maxConcurrentOperationCount = 2;}return _queue;
}
- (void)viewDidLoad {[super viewDidLoad];}
- (IBAction)start:(UIButton *)sender {//当队列中有操作的时候 不添加操作if(self.queue.operationCount ==0){//卡死  界面卡死//异步执行[self.queue addOperationWithBlock:^{//  NSLog(@"%d,%@",i,[NSThread currentThread]);[self random];}];//设置文字[self.startButton setTitle:@"暂停" forState:UIControlStateNormal];self.queue.suspended = NO;}else if(!self.queue.isSuspended){//正在执行//先把当前的操作执行完 暂停后续的操作self.queue.suspended = YES;//设置文字[self.startButton setTitle:@"继续" forState:UIControlStateNormal];}
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{// 操作数NSLog(@"%zd",self.queue.operationCount);
}
-(void)random{while(!self.queue.isSuspended){[NSThread sleepForTimeInterval:0.05];// [0,10)   0-9int num1 = arc4random_uniform(10);int num2 = arc4random_uniform(10);int num3 = arc4random_uniform(10);//回到主线程上更新UI[[NSOperationQueue mainQueue] addOperationWithBlock:^{self.lbl1.text = [NSString stringWithFormat:@"%d",num1];self.lbl2.text = [NSString stringWithFormat:@"%d",num2];self.lbl3.text = [NSString stringWithFormat:@"%d",num3];}];}
}
@end

IOS开发基础之摇奖机案例相关推荐

  1. IOS开发基础之手势解锁项目案例

    IOS开发基础之手势解锁项目案例 项目最终实现效果. 由于缺少红色的error背景图.我自己从安卓项目找到一个手势解锁,然后通过ps添加粉红色的红圈,才得以解决.为了分享给大家源码,github和本地 ...

  2. IOS开发基础之模拟科技头条项目案例32

    IOS开发基础之模拟科技头条项目案例32 说说这个项目的技术要点核心 ,首先是异步网络请求,block的回调,sdWebImage的使用.各个控件的使用,NSDate日期的转换.自动适配屏幕工作,模型 ...

  3. IOS开发基础之大转盘案例

    IOS开发基础之大转盘案例 本案例使用xib加载的,以及核心动画的使用.动态按钮的使用和创建.等知识. 源码在我的主页资源下.欢迎下载. 核心代码在这. // LJRotateView.h // 37 ...

  4. IOS开发基础之画板案例软件的开发

    IOS开发基础之画板案例软件的开发 值此元宵佳节,我依然在学习IOS,几天没有更新博客了.今天更新了一下. 源码在我的主页里面. info.plist里面加入这样的代码,防止截图的时候有问题 < ...

  5. IOS开发基础之核心动画 基础动画、关键帧、组动画案例

    IOS开发基础之核心动画 基础动画.关键帧.组动画案例 案例源码在我的主页里.实现效果图 // // ViewController.m // 30-核心动画 // // Created by 鲁军 o ...

  6. IOS开发基础之团购案例17-xib和UITableView两种方式实现

    IOS开发基础之团购案例17-xib和UITableView两种方式实现 Design By Johnson Shanghai 实现效果 系统和Xcode版本 注意的细节 关键性的代码 // // V ...

  7. IOS开发基础之NSURLSession的使用

    IOS开发基础之NSURLSession的使用 服务器我们选用的是tomcat服务器. 所有项目info.plist加入 <key>NSAppTransportSecurity</k ...

  8. IOS开发基础之使用Xcode12.3连线storyboard与属性

    IOS开发基础之使用Xcode12.3连线storyboard与属性 最近使用Xcode12.3开发,发现连线与以前版本操作上有所不同,今天就分享一下如果连线 我们想做一个点击按钮使label的字换成 ...

  9. IOS开发基础之UI基础的团购源码完整版本

    IOS开发基础之UI基础的团购源码完整版本 // // ViewController.m // 17-团购案例 // // Created by 鲁军 on 2021/2/4. //#import & ...

最新文章

  1. Java线程池详解学习:ThreadPoolExecutor
  2. Java学习lesson 09
  3. Sklearn中的CV与KFold详解
  4. PMCAFF | 史上最完整的沙龙活动策划总结
  5. python全栈工程师是指_Python全栈工程师(exercises)
  6. MySQLBackup 8.0.26 备份与恢复
  7. android dialog 隐藏状态栏_Flutter-最近搞了个项目-启动页Splash,Navigator.pop无法关闭Dialog...
  8. 奇迹私服gs服务器端口未能连接请设置参数,奇迹私服架设之各个快捷方式参数...
  9. 油猴插件-Tampermonkey插件下载
  10. 认识机器视觉环形光源
  11. 史上最全的oracle常用知识总结
  12. 2020-08-24 光纤通信第五章知识点整理
  13. java中math中的指数是,java指数运算math
  14. python交易是什么意思_py交易什么意思
  15. 总结 | Prompt在NER场景的应用
  16. java多核_java多线程中与多核cpu有什么关系?
  17. 程序员辛酸泪——当程序员老去,程序员又何去何从
  18. SSH常见问题及其解决方法
  19. 面试续与如何做自己的职业规划
  20. 乐理基础知识-1.节奏

热门文章

  1. 怎样把项目上传服务器,怎样将项目上传云服务器
  2. oracle导入初始数据死机,Sqoop导入Oracle数据至hive卡死在hive.HiveImport: Connecting to jdbc:hive2不执行...
  3. 什么可以搜python答案_什么软件可以搜python答案
  4. Keil 编译太慢怎么办?教你一招,提速10倍
  5. HDLBits答案(5)_Generate实例化模块
  6. 高考辽宁理工高考计算机专业分数,辽宁高考985分数线2019-985大学在辽宁省的录取分数线及位次...
  7. jboss linux 性能,搭建jprofiler对jboss性能监控
  8. java获取本周的开始时间和结束时间_2020年三伏天时间表什么时候开始结束 2020年三伏具体时间表一览...
  9. 中国海洋大学计算机学院研究生导师,中国海洋大学硕士研究生导师介绍:唐瑞春...
  10. websocket网络层详解_【技术分享】WebSocket漏洞与防护详解