我试图弄清楚是否有一种通用的方法可以从本质上擦除或加密与 NSObjects 关联的内存。我真的不在乎它是否有点麻烦,我只是想确保它真的无法阅读。
例如,如果我有一个
NSString* str = [[NSString alloc] initWithFormat:@"TESTING"];
做起来相对简单
unsigned char* strPtr = (unsigned char *) CFStringGetCStringPtr
((CFStringRef) str, CFStringGetSystemEncoding());
memset(strPtr, 0, [str length]);
我可以为 NSData 做类似的事情。但我真的很想有更一般的东西。
我调查过,没有运气:
- 似乎不再使用的区域。
- 创建 NSObject 的父类并将所有内容转换为该类并跟踪内存区域。但这只是一个完全的痛苦。
- 加密数据的实际内容并在访问时强制解密。这又回到了了解每种类型的问题。
- 加密然后解密内存区域,无法找到可靠地知道一般对象在内存中的位置的方法。
任何提示或想法将不胜感激。