Как отладить сбой Core Data Cloudkit в приложении macOS

У меня есть приложение для iOS Core data, которое использует Cloudkit с использованием NSPersistentCloudkitContainer - iOS 13 и новее. Я тестировал его на iPad и iPhone, и синхронизация работает хорошо. Теперь я попытался добавить Cloudkit в аналогичное приложение Mac, используя тот же контейнер Cloudkit (все еще в разработке). Опять же, это работает в отношении синхронизации, но довольно часто добавление / удаление объектов на iPad приводит к сбою на Mac, как показано ниже:

**libxpc.dylib`___xpc_activity_dispatch_block_invoke.109.cold.3:

0x7fff70a14423 <+0>:  pushq  %rbp
0x7fff70a14424 <+1>:  movq   %rsp, %rbp
0x7fff70a14427 <+4>:  xorl   %edi, %edi
0x7fff70a14429 <+6>:  callq  0x7fff70a144d8            ; symbol stub for: _os_assert_log
0x7fff70a1442e <+11>: movq   %rax, %rdi
0x7fff70a14431 <+14>: callq  0x7fff70a144ea            ; symbol stub for: _os_crash

-> 0x7fff70a14436 <+19>: ud2 **

Стек вызовов показывает:

Я использую NSFetchedResultsControllerDelegate с некоторой отладкой в ​​функции didChange. Иногда я вижу проблему до сбоя, например, когда говорится, что собирается вставить объект в строку 6, когда в самой таблице всего 4 строки. Я не всегда получаю такое сообщение.

В FetchedResultsControllerDelegate didChange я поместил отладку в часть переключателя.delete. Я видел подобные попытки удалить элемент 8, когда в таблице всего 7. Я не позволяю ему этого делать, но в итоге не удаляю нужный мне элемент. Похоже, запросы на изменение CloudKit поступают в "неправильном" порядке??

Пожалуйста, кто-нибудь может предложить, как я могу отладить это? Спасибо.

0 ответов

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