for循环不显示UIlabel中的计数值

时间:2015-01-12 09:39:10

标签: ios objective-c

您好我是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];

   }
}

1 个答案:

答案 0 :(得分:0)

你不能这样做。屏幕刷新是通过运行循环完成的,这意味着,在完成事件处理方法之后。如果您在方法中执行“3.000件事”,则屏幕将在之后更新。你应该了解运行循环。这是一项核心竞争力。

我不知道,你想要做什么。做这种事情的典型方法是不同的:

你在后台做,我。即使用GCD。在后台块中,您可以将重绘块分派到主队列。