如何手动清零内存?

时间:2016-06-10 17:06:35

标签: swift security automatic-ref-counting memory-safety

是否可以从内存中手动清除对象的内容?

特别是,我正在处理NSData。我尝试过使用data.length = 0data.setData(NSData)

我知道ARC会在超出其所属范围之后进入并清理,但是我可以在需要时手动强制执行此过程吗?

1 个答案:

答案 0 :(得分:4)

我认为你对ARC有一些误解,我想澄清一下。 ARC的目标是确保不会发生内存泄漏。它负责在整个生命周期内跟踪对象,并确保在没有任何引用的情况下将其“释放”。

重要的是要注意“被释放”的内存并不意味着“用0来写所有内容”。

它只是意味着内存将被指定为未使用。当系统需要为新对象分配内存时,释放的内存成为分配的候选者。

然而,没有任何保证,这种重新分配将会发生,因此您释放的内存很可能包含您的原始数据,并且永远不会被覆盖。