Как отладить Core Data Cloudkit cra sh в приложении macOS - PullRequest
1 голос
/ 10 апреля 2020

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

** libxp c .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 **

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...