Мое приложение использует пользовательские объекты класса ShoppingItem
.Этот класс принимает NSCoding
, чтобы его можно было заархивировать.Это работало в течение многих недель правильно.
Однако теперь у меня был случай, когда кодировка ShoppingItem
достигла точки останова исключения с ошибкой Thread 18: EXC_BAD_ACCESS (code=1, address=0x69f4b533d438)
.
Это трассировка стека:
Я не понимаю, почему возникло исключение:
Видимо, NSKeyedArchiver
закодировал первые 2 свойства, используя _encodeObject
, и потерпел крах при кодировании третьего свойства Set<ShoppingLocation>
.Но он не начал кодировать объект этого набора, потому что в противном случае исключение было бы вызвано в функции кодирования ShoppingLocation
.Вместо этого кодирование Set<ShoppingLocation>
не удалось в функции __CFStringEncodeByteStream
. Согласно коду , эта функция создает поток байтов из CFString
поддержки.
Мой вопрос:
В чем может быть причина крушения?И как я мог отладить ситуацию?