我必须NSString
从内存中删除一个(包含一些机密数据),但不仅要将其设置为nil
,还要将其字节无效。到目前为止我尝试过的是:
NSString *str = @"test";
NSLog(@"original string:%@", str);
CFStringRef ref = (__bridge CFStringRef)str;
const char * strPtr = CFStringGetCStringPtr(ref, kCFStringEncodingUTF8);
memset(strPtr, 0, [str lengthOfBytesUsingEncoding:NSUTF8StringEncoding]);
NSLog(@"cleared string:%@", str);
但是该函数CFStringGetCStringPtr
正在返回NULL
,因此它在memset
. 苹果在这里说,在某些情况下,该函数返回是正常的NULL
,但我不知道如何解决这个问题。
提前致谢