我的应用程序从服务器获取一些json数据,它使用NSMUtableData对象来存储这些数据。 但是调试器报告了以下错误:
[NSCFString setLength:]: unrecognized selector sent to instance
并且调试器突出显示以下行(连接didReceiveResponse方法):
[rqst_data setLength:0];
rqst_data在头文件中声明为NSMutableData。
请事先提供帮助,
的Stephane
答案 0 :(得分:3)
您的rqst_data
变量似乎已被释放。确保您已正确分配它。如果您已为其声明@property
,则最好将变量用作self.rqst_data
。
您可以在属性声明中使用retain
,如果是IOS 5 strong
。
您可以通过将NSZombieEnabled
设置为YES
来跟踪是否有任何变量被释放。启用僵尸后,释放对象的消息将不再出现奇怪的行为或以难以理解的方式崩溃,而是以可预测和调试器可破解的方式记录消息并死亡。
您可以按以下步骤设置NSZombieEnabled
。
从上面的菜单栏中选择产品。按住alt /选项并选择“测试...”或“运行...”。
1。
转到“参数”选项卡,然后在“环境变量”部分中添加NSZombieEnabled
YES
。
OR
2。
转到“诊断”选项卡,然后在“内存管理”部分中查看Enable Zombie Objects
。
答案 1 :(得分:2)
看来你的rqst_data指针实际上是指向NSString的指针,而不是NSMutableData对象。并且您无法设置NSString的长度。
也许您没有保留NSMutableData对象或者已经过度释放它,因此指向它的指针不再有效。