如何手动清零内存?

How can I manually zero out memory?

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

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

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

我认为您对 ARC 有一些误解,我想澄清一下。 ARC 的目标是确保不会发生内存泄漏。它负责在对象的整个生命周期中跟踪对象,并确保在没有引用保留时它是 "freed"。

请务必注意,内存为 "freed" 并不意味着 "writing over it all with 0s"。

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

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