IOS开发基础之摇奖机案例
生活随笔
收集整理的這篇文章主要介紹了
IOS开发基础之摇奖机案例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
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开发基础之摇奖机案例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 换工作,让我里外不是人,到底错在哪儿
- 下一篇: 顿悟人生十一句话