Что делает срочное свойство и когда его следует использовать? Я отображаю сводки сообщений, но когда пользователь прокручивает до определенной позиции, мне приходится загружать больше сообщений. Эта операция, похоже, не завершится, пока не будут завершены все сводки, которые я начал отображать. Я предполагаю, что свойство срочности даст приоритет операции загрузки сообщения над операцией рендеринга?
Mailcore: Что делает «срочно» в MCOOperation?
Ответы (1)
Проблема для меня заключалась в том, как MailCore расставляет приоритеты в очередях операций. Мне нужно отображать сводки, поэтому создается много plainTextBodyRenderingOperation
(по одному на сообщение). Если пользователь прокручивается до определенного момента, мне нужно загрузить больше сообщений. Я должен поставить это выше рендеринга. Итак, в моем методе загрузки я устанавливаю свойство срочности для двух операций, которые я запускаю для получения данных сообщения. Это означает, что как только я отправляю вызов для загрузки, эти очереди получают приоритет, и рендеринг, похоже, продолжается после их завершения. Возможно, Хоа может дать больше информации, но это сработало для моей ситуации. Я также последовал его предложению в комментариях, чтобы разрешить одновременный доступ к папкам. Это тоже помогло, но для меня ключом был приоритет операции.
session.allowsFolderConcurrentAccessEnabled = YES
. Это должно улучшить поведение. - person Dinh Viêt Hoà   schedule 09.04.2015plainTextBodyRenderingOperation
иfetchMessagesByNumberOperationWithFolder
, и из журналов видно, что они никогда не запускаются одновременно. Сообщения не начинают извлекаться, пока не завершится рендеринг. - person   schedule 09.04.2015