2014-12-04 102 views
2

我是Swift和iOS开发的新手。 我们如何在不使用release的情况下清除NSMutableData,然后再次重新分配/ init以再次使用?我试过resetBytesInRange(),但是用零代替内容。清除NSMutableData中的内容

我试过data.length = 0,但是追加结束后有垃圾数据。

data.setData(nil)给出错误。

我读this question,但它并没有解决我在swift上的问题。

请帮忙。

+4

'哒ta.length = 0 * *会清除NSData对象的内容。你能举一个具体的例子吗? – 2014-12-04 07:45:39

回答

3

尝试使用setData()NSData()具有:

mytableData.setData(NSData()) 
-1

对于Swift,为当前数据创建新的数据对象将用空字节替换旧字节。

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

对于可变数据:

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

输出:空字节阵列

<> 
+0

问题是关于变异'NSMutableData'。 – Kirsteins 2014-12-04 07:31:58

+0

'mutableData = NSMutableData(data:NSMutableData())'替换了'NSMutableData'。这可能不是行为,如果你有多个引用这个'NSMutableData'。 – Kirsteins 2014-12-04 07:47:48

+0

OP希望'nil NSMutableData'也会影响多个引用。 – Kampai 2014-12-04 07:50:41