以不同的时间间隔读取nsmutablearray

时间:2013-01-28 20:07:30

标签: iphone ios6

我有这个NSMutable数组。每两秒钟后逐个阅读并更新textview。但现在我想要的是在不同的时间间隔内每隔两秒钟从NSMutable数据中逐个读取。我怎么能做到这一点。

- (void)viewDidLoad{
myArray = [[NSMutableArray alloc]initWithObjects:@"String1",@"String2",@"String3",@"String4", @"String5",..... nil];  

[NSTimer scheduledTimerWithTimeInterval:2.0
                             target:self
                           selector:@selector(updateText:)
                           userInfo:nil
                            repeats:YES];


- (void)updateText:(NSTimer *)theTimer 
    {


        if (index < [myArray count])
        {
            myTextView.text = [myArray objectAtIndex:index];
            index++;
        }
        else
            index = 0;
        }
}

感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

简单:每次取消定时器并以所需的间隔重新创建它(当然是挂在定时器的引用上)。

答案 1 :(得分:1)

在您的updateText选择器中

只需创建一个具有不同间隔的新NSTimer,直到阵列中不再有对象为止。

答案 2 :(得分:1)

如果您只需要在每次加载视图时更改间隔值,您可以尝试使用随机数,在下一个示例中,它将返回2到10之间的随机数:

[NSTimer scheduledTimerWithTimeInterval:arc4random() % 10 + 2
                             target:self
                           selector:@selector(updateText:)
                           userInfo:nil
                            repeats:YES];

答案 3 :(得分:0)

使用performSelector:withObject:afterDelay,但使用随机延迟!

[self performSelector:@selector(updateText :) withObject:nil afterDelay:arc4random()%10 + 2];