【问题标题】:Parse SaveInBackgroundWithBlock takes a lot of time解析 SaveInBackgroundWithBlock 需要很多时间
【发布时间】:2015-08-25 16:36:54
【问题描述】:

我有一个包含以下列的解析类(名为“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)
})

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

【问题讨论】:

  • 请量化:多少时间是很多,内容栏有多少对象是很多等
  • 内容3项,耗时2分钟,内容10项,大致耗时5分钟。如果内容为 nil,则需要 10 秒。

标签: ios xcode swift parse-platform pfobject


【解决方案1】:

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

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

最后,如果您想自定义 Parse 的网络行为,您可以使用 REST API 并进行所有自己的网络调用(使用 NSURLSession 或 AFNetworking 等第三方库。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 2018-05-21
    • 1970-01-01
    • 1970-01-01
    • 2013-01-22
    相关资源
    最近更新 更多