在for循环中更新UIProgressView

时间:2011-05-25 09:44:52

标签: ios for-loop nsthread uiprogressview

我已经搜索过这个问题了,唯一的提示是performSelectorOnMainThread解决方案。我这样做了,但是在for循环运行时视图没有更新。在循环之后,正确显示进度值 - 但这不是“进度”视图=)

的点

for循环在控制器内。我调用一个方法来设置进度值:

CGFloat pr = 0.5; // this value is calculated
[self performSelectorOnMainThread:@selector(loadingProgress:) withObject:[NSNumber numberWithFloat:pr] waitUntilDone:NO];

这是加载进度方法

-(void)loadingProgress:(NSNumber *)nProgress{
    NSLog(@"Set Progress to: %@", nProgress);
    [[self progress] setProgress:[nProgress floatValue]];
}

我还尝试将带有for循环的方法放在后台线程中,方法是在方法的顶部使用:

    if([NSThread isMainThread]) {
        [self performSelectorInBackground:@selector(importData) withObject:nil];
        return;
    }
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];  

也许有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:0)

 CGFloat pr = 0.5; // this value is calculated
[self performSelectorInBackground:@selector(loadingProgress:) withObject:[NSNumber numberWithFloat:pr]];

尝试此设置进度值