我有这个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;
}
}
感谢您的帮助。
答案 0 :(得分:1)
简单:每次取消定时器并以所需的间隔重新创建它(当然是挂在定时器的引用上)。
答案 1 :(得分:1)
只需创建一个具有不同间隔的新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];