objective-c - uiprogressview 更新问题

标签 objective-c ios

我有两个 View ,第一个“A”,有一个按钮可以触发 Web 服务来验证一个代码,如果验证成功,它会执行到 View “B”的转场。

在 View 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。它真的很容易使用,我相信会解决您的问题。

关于objective-c - uiprogressview 更新问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9719672/

相关文章:

ios - 如何从 NSDate 获得 1 小时的 future 时差

带有扩展导航栏的 iOS 过渡

ios - 用于具有动态高度的 View /标签的 Swift heightForRowAtIndexPath

objective-c - 无法在 Objective-C/C 中正确 malloc

IOS - 如何以编程方式阻止从另一个应用程序打开一个应用程序?

ios - 将 API 用于磁刷,但设备无法打开

ios - 假期关闭后将应用上传到应用商店

android - native 应用程序如何实现 "responsive"?

ios - 从 safari 移动设备中的控制台打开链接

jquery - 如何在 jQuery Mobile 中获取日期框关闭事件