Кодирование набора пользовательских объектов дает сбой в __CFStringEncodeByteStream - PullRequest
0 голосов
/ 11 декабря 2018

Мое приложение использует пользовательские объекты класса ShoppingItem.Этот класс принимает NSCoding, чтобы его можно было заархивировать.Это работало в течение многих недель правильно.
Однако теперь у меня был случай, когда кодировка ShoppingItem достигла точки останова исключения с ошибкой Thread 18: EXC_BAD_ACCESS (code=1, address=0x69f4b533d438).

Это трассировка стека:

enter image description here

Я не понимаю, почему возникло исключение:
Видимо, NSKeyedArchiver закодировал первые 2 свойства, используя _encodeObject, и потерпел крах при кодировании третьего свойства Set<ShoppingLocation>.Но он не начал кодировать объект этого набора, потому что в противном случае исключение было бы вызвано в функции кодирования ShoppingLocation.Вместо этого кодирование Set<ShoppingLocation> не удалось в функции __CFStringEncodeByteStream. Согласно коду , эта функция создает поток байтов из CFString поддержки.

Мой вопрос:
В чем может быть причина крушения?И как я мог отладить ситуацию?

...