100分 |
抛砖引玉
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"进度" message:@"1%" delegate:nil cancelButtonTitle:nil otherButtonTitles: nil]; [alert show]; dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(2 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ alert.message = @"10%"; }); |
非常感谢,已经搞定 |
|
使用GCD处理多线程编程还是非常方便的。GCD用非常简洁的方法,实现了极为复杂的多线程编程。使用它我们可以很简单的创建一个异步操作
dispatch_async(queue, ^{ /* *处理比较耗时的操作 */ //////与主线程通讯 dispatch_async(dispatch_get_main_queue(), ^{ //////只在主线程中可以执行的处理,如UI的更新 }); }); 如果使用上面范式来处理你的问题的话,像这样 UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"进度" message:@"1%" delegate:nil cancelButtonTitle:nil otherButtonTitles: nil]; [alert show]; dispatch_async(dispatch_get_global_queue(0,0), ^{ sleep(2); /////阻塞线程,模拟耗时操作 dispatch_async(dispatch_get_main_queue(), ^{ alert.message = @"正在同步数据20%" }); }); |