不兼容的指针类型分配给' NSMutableData *'来自' NSData *'

时间:2015-02-13 14:12:59

标签: ios nsdata incompatibility nsmutabledata

我正在错误

  

"不兼容的指针类型分配给' NSMutableData *'从   ' NSData *'"

据我所知,它必须是警告而不是错误。所以我认为我的Xcode项目设置有什么问题吗?

这是错误的图像。 enter image description here

3 个答案:

答案 0 :(得分:4)

这应该是一个错误,因为当某人获得明显可变的数据并试图改变它时,它会在运行时崩溃。

基本上,你不应该做你正在做的事情。使用mutableCopy确保数据是可变的,或者,当您调用构造函数时,请确保在NSMutableData上调用它。

答案 1 :(得分:2)

看起来您的self.activeDownload被声明为NSMutableData类型,因此编译器会让您知道赋值无效(即您不能在赋值后改变数据)。只需将NSData更改为NSMutableData

self.activeDownload = [NSMutableData dataWithContentsOfFile:filePath];

答案 2 :(得分:-1)

你很幸运,这是一个错误。只有完全缺乏经验的程序员才能将此作为警告。如果您的代码中存在错误,您是否愿意编译器告诉您或您必须开始调试?

NSMutableData表示可以更改对象。分配NSData对象意味着您的代码现在认为可以更改对象,但如果您尝试,则会在运行时发生崩溃。这真的是你想要的吗?