Длительная работа выполняется по предупреждению основного потока о регулярных функциях 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
        });
})

и вы больше не увидите предупреждения.