注册 登录
主题 : 关于在循环中延迟的问题
级别: 新手上路
UID: 609225
精华: 0
发帖: 44
可可豆: 156 CB
威望: 156 点
在线时间: 52(时)
注册时间: 2017-03-22
最后登录: 2017-11-17
0 楼:  发表于: 2017-09-13 16:41    发自: Web Page
来源于 语法问题 分类

关于在循环中延迟的问题   

各位大佬,请问在一个循环中 怎么延迟?
for (int i =0 ; i<10; i++) {
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(1.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            NSLog(@"%i",i);
        });
为什么我这样写不行啊?
我就是想每间隔一秒,nslog一次。结果输出结果是一秒之后,十个数全出来了。
级别: 新手上路
UID: 609225
精华: 0
发帖: 44
可可豆: 156 CB
威望: 156 点
在线时间: 52(时)
注册时间: 2017-03-22
最后登录: 2017-11-17
1 楼:  发表于: 2017-09-13 16:42    发自: Web Page
麻烦给讲一下怎么用延迟?在这种情况下。。谢谢了
级别: 侠客
状态: 连续签到 - [1天]
UID: 405796
精华: 0
发帖: 119
可可豆: 178 CB
威望: 168 点
在线时间: 175(时)
注册时间: 2014-11-24
最后登录: 2017-11-17
2 楼:  发表于: 2017-09-13 17:18    发自: Web Page
    for (int i = 0; i < 10; i++) {
        NSLog(@" ----- %d",i);
        dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(i * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
            NSLog(@"i = %d",i);
        });
    }
我有一本Mac,足以慰风尘。
级别: 新手上路
UID: 609225
精华: 0
发帖: 44
可可豆: 156 CB
威望: 156 点
在线时间: 52(时)
注册时间: 2017-03-22
最后登录: 2017-11-17
3 楼:  发表于: 2017-09-13 17:38    发自: Web Page
回 2楼(陌上红尘) 的帖子
大哥,那如果不是for循环,是遍历的话,那该怎么办?遍历一个数组,然后依次nslog里面的东西。
级别: 侠客
状态: 连续签到 - [1天]
UID: 405796
精华: 0
发帖: 119
可可豆: 178 CB
威望: 168 点
在线时间: 175(时)
注册时间: 2014-11-24
最后登录: 2017-11-17
4 楼:  发表于: 2017-09-13 23:14    发自: Web Page
回 3楼(大侠帮帮我) 的帖子
试一下啊,for循环不会等你1秒之后再去执行下次循环,它执行了{}间的语句之后就开始执行下次循环了,dispatch_after是异步的,不会阻塞主线程,遍历应该也一样的
我有一本Mac,足以慰风尘。
级别: 新手上路
UID: 317762
精华: 0
发帖: 48
可可豆: 148 CB
威望: 138 点
在线时间: 419(时)
注册时间: 2014-05-23
最后登录: 2017-11-17
5 楼:  发表于: 2017-09-13 23:22    发自: Web Page
    [NSTimer scheduledTimerWithTimeInterval:1 repeats:YES block:^(NSTimer * _Nonnull timer) {
        NSLog(@"123");
    }];


每隔一秒 建议用NSTimer   ,如果你觉得对您有帮助 希望你也看看我的问题,你肯定能解决。

http://www.cocoachina.com/bbs/read.php?tid-1725627.html  地址在这里
级别: 骑士
UID: 524299
精华: 0
发帖: 243
可可豆: 261 CB
威望: 261 点
在线时间: 600(时)
注册时间: 2015-11-18
最后登录: 2017-11-09
6 楼:  发表于: 2017-09-14 08:42    发自: Web Page
[NSThread sleepForTimeInterval:1]  整个程序都会暂停1秒钟
级别: 新手上路
UID: 609225
精华: 0
发帖: 44
可可豆: 156 CB
威望: 156 点
在线时间: 52(时)
注册时间: 2017-03-22
最后登录: 2017-11-17
7 楼:  发表于: 2017-09-14 10:18    发自: Web Page
回 5楼(tanqilong2014) 的帖子
老哥加油!亲人会好的!
描述
快速回复

关注本帖(如果有新回复会站内信通知您)

发帖、回帖都会得到可观的积分奖励。查看论坛积分规则

按"Ctrl+Enter"直接提交
    顶部