我有一个iOS应用程序,我正在后台线程上完成任务。每当完成一个任务时,我希望向主线程发送一条消息,以便我可以将自定义进度条移动到适当的阶段。
最简单但最安全的方法是什么?
编辑1
这是我正在使用的方法:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,
(unsigned long)NULL), ^(void) {
// get background tasks done.
[self.background backgroundMethod];
});
编辑2
这是我尝试使用@Madboy的答案时的示例。在执行后台方法的类中,我有一个指向进度条的指针。我们认为这会起作用吗?(请注意,还更改了编辑1)。
@implementation BackgroundClass
@synthesize delegate;
@synthesize customProgressBar
- (void)backgroundMethod
{
// Run tasks
}
- (void)delegateSaysBackgroundMethodIsFinished
{
[self performSelectorOnMainThread:@selector(tasksDone:) withObject:self.customProgressBar waitUntilDone:NO];
}
@implementation CustomProgressBar
- (void)tasksDone
{
// change UI to reflect progress done.
}