我在内存中有一个巨大的 NSMutableData 对象(大小约为 1 MB),现在我想将对象中的所有字节替换为 0(而不是释放内存)。resetBytesInRange 方法让我可以做到这一点。但是,如何验证/检查字节是否实际设置为 0。我想查看内存地址并确认这一点。这可能吗?
我有以下代码
NSMutableData *imgData = [NSMutableData dataWithCapacity:50000000];
imgData = (NSMutableData*)UIImageJPEGRepresentation(img, 1.0);
[imgData resetBytesInRange:NSMakeRange(0, [imgData length]) ];
现在,当我查看 imgData 指向的地址(以及以下几个位置)时,在 resetBytes 之前和之后,我看不到从 imgData 指向的地址开始的内存位置中的值有任何变化(我希望见分配的零)。我假设内存分配从 imgData 指向的地址开始是连续的(直到 [imgData 长度])。这个假设是否正确(似乎不是)?如果不是 NSMutableData 对象中的字节存储在哪里?我可以单独访问它们吗?
谢谢
维韦克