Друзья, помогите пожалуйста разобраться.
Пишу апу (на swiftUI) которой необходимо парсить список товаров из гугл таблицы и локально их сохранять с помощью рилма, ну а так же удалять/обновлять/и тд. С самим парсингом и сохранением проблем нет, но нужно чтобы при нажатии “загрузить”/“обновить”/“удалить” поверх списка и кнопок ставилась заглушка с серым фоном прогрессвью пока процесс не закончится. Все работает как задумано, когда я завожу функции по сохранению/обновлению в фоновый поток, но только один раз (хотя иногда и два что странно), если снова попытаться что-то сделать, выдает “Realm accessed from incorrect thread.”. Поток я создаю константой в менеджере вне функций.
Можете подсказать в чем проблема?
Проблема с "Realm accessed from incorrect thread"
edinoezlo
#1
Jack
#2
Давно с рилмом не работал, но вроде общаться к обьекту рилма нужно в том потоке в котором вы его создаете
RexHunt
#3
Если работаете с реалмом или объектом реалма в замыкании, оборачивайте в DispatchQueue.main.async
RexHunt
#5
Вы явно используете реалм не в основном потоке.
Еще у вас completion не совсем правильный.
edinoezlo
#6
Елки, если перевести в основной поток, то приложение не крашится, мне казалось я проверял. Спасибо тебе, очень помог!)
Кстати, а как именно completion не правильный?
RexHunt
#7
completion сработает быстрее чем закончат свою работу методы load или update.
если нужно выполнить код по завершении этих методов, completion нужно передавать в них.