Разбор SaveInBackgroundWithBlock занимает много времени

У меня есть класс разбора (с именем "История") со следующими столбцами:

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

Я пытаюсь обновить объект PFObject из класса "Story" следующим образом

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

В некоторых случаях завершение блока занимает много времени. Отладкой я обнаружил, что чем больше объектов в столбце "содержимое", тем дольше это занимает. Но я даже не обновил "содержание". Все значения в коде не равны нулю. Я тоже это проверял. Любая помощь будет оценена. Благодарю.

1 ответ

Это потенциально ожидаемое поведение. В общем, когда вы кладете что-то в фоновом потоке (как saveInBackgroundWithBlock почти наверняка делает) это займет гораздо больше времени, чем если бы вы вызвали его в главном потоке. Если вам нужно, чтобы он быстро вернулся и не прочь заблокировать пользовательский интерфейс, вы можете использовать save: метод.

Вы также можете проверить, сколько запросов вы делаете одновременно, поскольку это может замедлить каждый из них.

Наконец, если вы хотите настроить сетевое поведение Parse больше, чем вы уже делаете, вы можете просто использовать REST API и делать все свои собственные сетевые вызовы (используя NSURLSession или стороннюю библиотеку, такую ​​как AFNetworking).

Другие вопросы по тегам