iphone - 解析时的事件指示器

标签 iphone ios cocoa-touch ios5 nsxmlparser

场景是:

有一个 View 有一个按钮,可以将用户带到另一个 View 。在下一个 View Controller 的 viewDidLoad 中,一个巨大的 XML 文件被下载、解析并显示在屏幕上。这样,当 View 导航到它时,我得到的数据已经显示在屏幕上。

问题是:

当我单击调用其中包含解析的 View Controller 的按钮时,应用程序变得无响应。下载并解析所有数据后,应用程序将立即移动到下一个 View 。现在,我想在单击该按钮时显示一个事件指示器,直到应用程序无响应为止。一旦 View 导航到另一个 View ,事件指示器就应该停止。我尝试将事件指示器放在我想要登陆的 ViewController 的 viewDidLoad 中,但无济于事。

PS:由于应用程序的性质,我无法在“viewWillAppear”中进行解析。

期待回复。

最佳答案

您应该在后台队列/线程中执行任何不涉及 UI 的主要工作。

使用 GCD,这可能看起来像这样:

// Start UIActivityIndicator

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    // Parse your XML

    dispatch_async(dispatch_get_main_queue(), ^{

        // Update the UI when you're finished

    }
}

关于iphone - 解析时的事件指示器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12063752/

相关文章:

iphone - iPhone 3.0 的 Safari 缓存大小

iphone - 多个 iAd 与一个 View Controller ?

iOS导航栏总是空的

ios - Xamarin iOS 自动布局 : Resize width and vertical scroll automatically for various devices while keeping the horizontal scroll disabled

iphone - 在应用程序声音中禁用

iphone - 如何像 XCode 3 一样查看 XCode 4 中的对象层次结构?

ios - 如何使用 Swift 实时对视频应用滤镜

ios - 将数据从模型传递到 Controller

ios - 使用关联引用在 Objective-C 类别中伪造实例变量 - 错误 "Use of undeclared identifier ' OBJC_ASSOCIATION_RETAIN”

iphone - iphone 支持多少同时(并发)网络连接?