清空NSMutableData中的内容

4
我对Swift和iOS开发不熟悉。如何清除NSMutableData,而不使用释放再重新分配/初始化以便再次使用?
我尝试了resetBytesInRange(),但它会将内容替换为零。
我尝试了data.length = 0,但在添加后末尾会有垃圾数据。 data.setData(nil)会出现错误。
我阅读了this question,但它不能解决我的Swift问题。
请帮忙。

4
data.length = 0会清除NSData对象的内容。您能举个具体的例子说明这种方法无法起作用吗? - Martin R
2个回答

4

尝试使用setData()NSData()

mytableData.setData(NSData())

-1

对于Swift,创建新的数据对象以替换旧字节为空字节。

data = NSData(data: NSData())
println(data)

对于可变数据:

mutableData = NSMutableData(data: NSMutableData())
println(mutableData)

输出:空字节数组

<>

问题是关于修改NSMutableData的。 - Kirsteins
mutableData = NSMutableData(data: NSMutableData()) 会替换 NSMutableData。如果您有多个对此 NSMutableData 的引用,则可能不会出现这种行为。 - Kirsteins
OP想要一个nil NSMutableData,它也会影响到多个引用。 - Kampai
@Kirsteins:你认为这个是因为什么被踩了呢?你在哪里找到的,会有多个引用。给我一个解释。 - Kampai
如果您有多个引用指向变量 data 作为同一对象,并且您将新的对象赋值给 data,则其他引用将指向不同的对象。在您的情况下,您并没有进行突变,而是进行替换。 - Kirsteins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接