Это действительно похоже на то, что вы напутали с инициализацией контекста, постоянного хранилища и его координатора. Вы бы лучше посмотреть на это. На SO уже есть похожие посты, такие как this .
Что более важно, вы не будете перехватывать такое исключение с try-catch
в Swift. В действительности Swift try-catch
не имеет ничего общего с исключениями, но является высокоуровневым API для перехвата зарегистрированных ошибок. В вашем случае вы просто перехватываете ошибку, которая может появиться при сохранении ваших данных в базе данных. Но ошибка возникла немного глубже, как кажется.
Чтобы продвинуться дальше, все основные данные по-прежнему полностью находятся в объективе C, который имеет совершенно другую систему для генерирования исключений, и хотя эти исключения МОГУТ быть перехвачены с целью C try-catch
, это же исключение не будет перехвачено тем из Swift. То, что сделала эта система, только заменило ввод указателя на ошибку в метод: .save(&error)
, который использовался в targetC. И ваш блок catch будет срабатывать только тогда, когда эта ошибка не равна нулю.