2

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

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

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

任何人都知道如何做到这一点?

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

1 回答 1

3

“同步”方法也称为“阻塞”方法——它有效地阻塞当前线程,直到它完成。

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

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

AUIActivityView更有意义。您可以使用以下内容来实现使用后的目标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)")
    }
}
于 2015-03-04T20:42:58.310 回答