5

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

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

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

4

1 回答 1

4

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

需要注意的是,被“释放”的内存并不意味着“用 0 覆盖它”。

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

但是,无法保证这种重新分配会发生,因此您释放的内存很有可能包含您的原始数据,并且永远不会被覆盖。

于 2016-06-10T17:19:50.817 回答