您好我是ios开发的新手。当我循环播放时,例如3000,我希望在UILabel
中显示每个值。但它显示循环结束后的最后一个计数值。这是简单的代码。
for (int i = 0; i < 3000; i++) {
myLable.text = [NSString stringWithFormat: @"%d", i];
NSLog(@"loop is running");
}
NSLog(@"loop is finished");
我也使用过GCD但没有结果。
上面的代码只是一个例子。在for循环中我想要的是
当用户选择联系人组时,我想添加3000个或更多联系人。如果添加了任何联系人,我想在uilable中显示计数值。像这样的东西
-(void)addContacts:(NSArray*)numberOfContacts
{
for (int i = 0; i < [numberOfContacts count]; i++) {
//method call to add the contact ex:[self addContact:@"murali" phoneNumber:@"41524652"]
myLable.text = [NSString stringWithFormat: @"%d", i];
}
}
答案 0 :(得分:0)
你不能这样做。屏幕刷新是通过运行循环完成的,这意味着,在完成事件处理方法之后。如果您在方法中执行“3.000件事”,则屏幕将在之后更新。你应该了解运行循环。这是一项核心竞争力。
我不知道,你想要做什么。做这种事情的典型方法是不同的:
你在后台做,我。即使用GCD。在后台块中,您可以将重绘块分派到主队列。