NSMutableData SetLength error - PullRequest
       12

NSMutableData SetLength error

1 голос
/ 06 сентября 2011

Мое приложение получает некоторые данные json с сервера и использует объект NSMUtableData для хранения этих данных. Но отладчик сообщает о следующей ошибке:

[NSCFString setLength:]: unrecognized selector sent to instance

и отладчик выделил следующую строку (в соединении didReceiveResponse метод):

[rqst_data setLength:0];

rqst_data объявлен как NSMutableData в заголовочном файле.

Заранее спасибо за помощь,

Stephane

Ответы [ 2 ]

3 голосов
/ 06 сентября 2011

Кажется, ваша переменная rqst_data освобождена. Убедитесь, что вы правильно распределили его. Если вы объявили @property для этого, лучше использовать переменную как self.rqst_data. Вы можете использовать retain и в случае IOS 5 strong в объявлении свойства.

Вы можете отслеживать, освобождается ли какая-либо переменная, установив NSZombieEnabled в YES. При включенных зомби сообщения на освобожденные объекты больше не будут вести себя странно и не будут падать трудным для понимания способом, а вместо этого будут регистрировать сообщение и умирать предсказуемым и отладочным способом. Вы можете установить NSZombieEnabled, выполнив следующие действия.

Выберите Product в строке меню выше. Удерживая нажатой клавишу alt / option, выберите «Test ...» или «Run ...».

1. Перейдите на вкладку «Аргументы» и добавьте NSZombieEnabled YES в разделе «Переменные среды».

OR

2. Перейдите на вкладку «Диагностика» и проверьте Enable Zombie Objects в разделе «Управление памятью».

2 голосов
/ 06 сентября 2011

Похоже, что ваш указатель rqst_data на самом деле является указателем на строку NSString, а не объектом NSMutableData. И вы не можете установить длину строки NSString.

Возможно, вы не сохранили объект NSMutableData или перевыпустили его, чтобы указатель на него больше не действовал.

...