Длительная работа выполняется по предупреждению основного потока о регулярных функциях Parse
Прежде всего, я знаю, что это значит. Проблема в том, что я получаю эту ошибку при стандартных вызовах, которые нельзя преобразовать в фоновые вызовы. Я получаю эту ошибку при запуске приложения:
[Parse enableLocalDatastore];
PFInstallation *currentInstallation = [PFInstallation currentInstallation];
Я выяснил, что эти методы вызывают проблемы, установив символическую точку останова на warnParseOperationOnMainThread
и исследуя стек вызовов.
Я не могу заменить эти вызовы асинхронными, и, насколько я знаю, эти методы предназначены для регулярного вызова из основного потока. Является ли это ошибкой Parse, или мне нужно вызвать все эти методы из фонового потока?
Ответы
Ответ 1
Оберните вызовы в...
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
PFInstallation *currentInstallation = [PFInstallation currentInstallation];
dispatch_async(dispatch_get_main_queue(), ^(void){
// any UI updates need to happen in here back on the main thread
});
})
и вы больше не увидите предупреждения.