【问题标题】:NSMutableData SetLength errorNSMutableData SetLength 错误
【发布时间】:2011-09-05 20:06:53
【问题描述】:

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

[NSCFString setLength:]: unrecognized selector sent to instance

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

[rqst_data setLength:0];

rqst_data 在头文件中被声明为 NSMutableData。

提前感谢您的帮助,

斯蒂芬

【问题讨论】:

  • 为什么将长度设置为0?另外,你确定你已经初始化了rqst_data 对象吗?

标签: iphone ios ios4 uiviewcontroller nsurlconnection


【解决方案1】:

您的rqst_data 变量似乎被释放了。确保您已正确分配它。如果你已经为它声明了@property,你最好使用变量self.rqst_data。 您可以在属性声明中使用 retain 和 IOS 5 strong

您可以通过将NSZombieEnabled 设置为YES 来跟踪是否有任何变量被释放。启用僵尸后,已释放对象的消息将不再表现异常或以难以理解的方式崩溃,而是会记录一条消息并以可预测和调试器可断点的方式死亡。 您可以通过以下步骤设置NSZombieEnabled

从上面的菜单栏中选择产品。按住 alt/option 并选择“测试...”或“运行...”。

1。 转到参数选项卡,并在“环境变量”部分添加NSZombieEnabledYES

2。 转到“诊断”选项卡,并在“内存管理”部分检查Enable Zombie Objects

【讨论】:

    【解决方案2】:

    看来您的 rqst_data 指针实际上是指向 NSString 的指针,而不是 NSMutableData 对象。而且你不能设置 NSString 的长度。

    也许您没有保留 NSMutableData 对象或过度释放它,因此指向它的指针不再有效。

    【讨论】:

    • 是的,你是对的。我用一个字符串设置这个变量。非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2014-07-21
    • 1970-01-01
    • 2019-04-30
    • 1970-01-01
    • 1970-01-01
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多