注:原文---念茜的博客
对于敏感数据,我们不希望长时间放在内存中,而希望使用完后立即就被释放掉。
但是不管是ARC还是MRC,自动释放池也有轮循工作周期,我们都无法控制内存数据被擦除的准确时间,让hackers们有机可乘。
本文介绍一个小技巧——及时数据擦除。
假如一个View Controller A的一个数据被绑在一个property上:
当A push到 另外一个View Controller B时,该数据还是有可能被读到的:
于是,“用后即擦”变得十分必要:
Log输出如下:
可以看到,我们想要保护的数据,被有效的擦除了。
还有提个醒,如果是这样:
创建的字符串,是会被分配到data区,而是无法修改的。
如果有兴趣也有闲心,可以试试运行下面的代码,有彩蛋哦:
编译器把两个information的省略到一个地址了~