我有两个视图,第一个是“ A”,有一个按钮可以触发Web服务验证一个代码,如果验证成功,它将对视图“ B”执行segue。

在视图B中,我有这个

- (bool) viewDidUpload

   dispatch_async(kBgQueue, ^{


    [self processContacts];
    [self sendPost];
});



-(void) processContacts

    //Process contact address

-(void) sendPost
    //Process web services call
    //If web service call is OK, call [self updateBar]
            [self performSelectorOnMainThread:@selector(updateBar)
                               withObject:nil waitUntilDone:YES];


更新:我实现了GDC在后台发送sendPost和processContacts,然后sendPost方法使用performSelectorOnMainThread:进行了updateBar调用,问题是执行不输入此方法,并且在不更新栏的情况下完成。 sendPost和processContacts现在在后台运行,但是我不知道每次有效连接完成后如何在主目录中执行updateBar,然后返回到后台并再次执行其余连接。

非常感谢

最佳答案

您应该在后台线程中执行所有计算和通信。然后在主线程中更新GUI内容(例如进度条)。

看看GCD。它真的很容易使用,并且可以肯定会解决您的问题。

10-08 12:11