同步保存到 parse.com 时的进度条

Progress bar while synchronous save to parse.com

有人知道我如何在同步保存到 parse.com 时显示 UIProgressView 吗?

我尝试在开始同步保存之前显示进度视图,并在保存完成后将其隐藏,但这不起作用。它不显示进度视图并立即开始保存。

我开始认为同步保存会占用其他所有内容的所有功能,而异步保存是解决此问题的最佳选择。但在我的情况下,我必须同步保存,因为我在保存后直接显示保存的数据。

有人知道如何做到这一点吗?

self.startProgress()
self.saveSynchronousToParse()
self.stopProgress()

'synchronous' 方法也称为 'blocking' 方法 - 它有效地阻塞当前线程,直到它完成。

默认情况下,您的应用程序在主队列中 运行,这是执行所有 UI 任务的队列,因此一旦您调用 "saveSynchronousToParse"(可能会调用save 或一些类似的同步解析函数)您的 UI 将冻结,直到任务完成。您可能会在控制台中收到一条警告,表明您正在主线程上执行同步任务。

在这种情况下,进度视图实际上没有意义,因为您不会从 Parse API 获得任何关于保存信息的进度的反馈。

A UIActivityView 更有意义。使用 UIActivityView

后,您可以使用以下方法实现您的目标
self.activityView.startAnimating()

self.somePFObject.saveInBackgroundWithBlock { 
(success: Bool!, error: NSError!) -> Void in
    dispatch_async(dispatch_get_main_queue(),{
       self.activityView.stopAnimating()
    });
    if success {
        println("success")
    } else {
        println("\(error)")
    }
}