Объекты Nsstring меняют свой тип данных

#iphone #crash #nsstring

#iPhone #сбой #nsstring

Вопрос:

У меня есть определенное свойство nsstring, объявленное в переменной, оно используется для сохранения текстовой строки, когда я выполняю операцию синтаксического анализа. Поскольку эта операция синтаксического анализа выполняется несколько раз, свойство Nsstring странно изменяется на любой случайный тип данных и приводит к сбою моего приложения. Это происходит, когда я пытаюсь сравнить свойство с другой локальной переменной, которая также является string. Но к тому времени, когда я сравниваю, переменная appdelegate уже изменила свой тип данных и, следовательно, приводит к сбою моего приложения.

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

Комментарии:

1. Пожалуйста, добавьте вывод на консоль, чтобы мы могли вам помочь.

Ответ №1:

Это признак того, что ваш объект NSString был освобожден, поэтому вы отправляете сообщение освобожденному объекту. Это приводит к сбою вашего приложения. Тип данных изменяется, потому что после освобождения объекта память, в которую он был помещен, больше не является правильной и может содержать корзину. Вы должны использовать Run with Performance tool -> Инструмент утечки. Это очень помогает в таких случаях. Пожалуйста, имейте в виду, что вы должны включить обнаружение объектов zombie в настройках. введите описание изображения здесь

Комментарии:

1. Я думаю, что KOS может быть прав. Хотя я и не использовал zombies, но после того, как я изменил свой код, чтобы каждый раз явно освобождать и создавать переменную, проблема, похоже, исчезла. Спасибо за понимание .. 🙂