ios - 解析 SaveInBackgroundWithBlock 耗时较多

标签 ios xcode swift parse-platform pfobject

我有一个包含以下列的解析类(名为“Story”):

contents - Array of Pointers to Media class
creator - User pointer
lastPosted - Date
title - String
users - array of pointers to User class

我正在尝试像这样从“故事”类更新 PFObject

storyObject.addUniqueObjectsFromArray(selectedFriends, forKey: "users")
storyObject.setObject(createStoryTextField.text, forKey: "title")
storyObject.saveInBackgroundWithBlock({ (succeed: Bool, error: NSError?) -> Void in
    hud.hide(true)
})

在某些情况下,完成 block 需要很长时间才能完成。通过调试,我发现“内容”栏中的对象越多,花费的时间就越长。但我什至还没有更新“内容”。代码中的所有值都不为零。我也检查过。任何帮助,将不胜感激。谢谢。

最佳答案

这可能是预期的行为。一般来说,当你把一些东西放在后台线程上时(比如 saveInBackgroundWithBlock 几乎肯定会这样做),它会比你在主线程上调用它花费更长的时间来完成。如果您需要它快速返回并且不介意阻塞 UI,您可以使用 save: 方法。

您可能还想查看您同时发出了多少请求,因为这可能会减慢每个请求的速度。

最后,如果你想自定义 Parse 的网络行为比你已经做的更多,你可以使用 REST API并进行所有你自己的网络调用(使用 NSURLSession 或像 AFNetworking 这样的第三方库。)

关于ios - 解析 SaveInBackgroundWithBlock 耗时较多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32209455/

相关文章:

ios - 找不到我的文件

ios - 告诉 NSPersistentStoreCoordinator 将所有更改写入 sqlite 文件

ios - 以编程方式创建 UItextfield,稍后如何在 Swift 中获取文本?

ios - xcode 安装应用程序的代码

ios - 我可能不再用 atos 符号化崩溃日志

ios - 升级 Firebase 破坏了我的 iOS 项目

c# - Environment.GetFolderPath(Environment.SpecialFolder.Personal) 在不同位置返回不同路径

Objective-C:forKey 和 forKeyPath 有什么区别?

ios - 在 iOS 中单击 UIButton 时如何将项目插入 UITableView

swift - 创建 UITextFieldDelegate 以限制 Swift 中的字符数