【发布时间】:2015-02-13 14:12:59
【问题描述】:
我收到错误
“分配给'NSMutableData *'的不兼容指针类型来自 'NSData *'"
据我所知,它必须是警告而不是错误。所以我认为我的 Xcode Project 设置有什么问题吗?
这是错误的图像。
【问题讨论】:
标签: ios nsdata incompatibility nsmutabledata
我收到错误
“分配给'NSMutableData *'的不兼容指针类型来自 'NSData *'"
据我所知,它必须是警告而不是错误。所以我认为我的 Xcode Project 设置有什么问题吗?
这是错误的图像。
【问题讨论】:
标签: ios nsdata incompatibility nsmutabledata
这应该是一个错误,因为当有人获得明显可变的数据并尝试对其进行变异时,它会在运行时崩溃。
基本上,你不应该做你正在做的事情。使用mutableCopy 确保数据是可变的,或者,当您调用构造函数时,请确保在NSMutableData 上调用它。
【讨论】:
看起来你的self.activeDownload 被声明为 NSMutableData 类型,所以编译器让你知道赋值无效(即你不能在赋值后改变数据)。只需将NSData 更改为NSMutableData。
self.activeDownload = [NSMutableData dataWithContentsOfFile:filePath];
【讨论】:
你很幸运,这是一个错误。只有完全没有经验的程序员才会把这当作一个警告。如果您的代码中存在错误,您希望编译器告诉您还是必须开始调试?
NSMutableData 表示可以更改对象。分配一个 NSData 对象意味着您的代码现在认为该对象可以更改,但如果您尝试,您将在运行时崩溃。这真的是你想要的吗?
【讨论】: