NSMutableData SetLength错误

时间:2011-09-05 20:06:54

标签: iphone ios ios4 uiviewcontroller nsurlconnection

我的应用程序从服务器获取一些json数据,它使用NSMUtableData对象来存储这些数据。 但是调试器报告了以下错误:

[NSCFString setLength:]: unrecognized selector sent to instance

并且调试器突出显示以下行(连接didReceiveResponse方法):

[rqst_data setLength:0];

rqst_data在头文件中声明为NSMutableData。

请事先提供帮助,

的Stephane

2 个答案:

答案 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对象或者已经过度释放它,因此指向它的指针不再有效。