У меня есть некоторые уязвимые данные, которые я хочу очистить непосредственно после использования. В настоящее время уязвимые данные в форме NSString. NSString находится в моем неизменном понимании, означая, что я не могу действительно очистить данные. NSMutableString кажется более соответствующим, тем не менее, поскольку это изменяемо и имеет методы как replaceCharactersInRange и deleteCharactersInRange. Я не знаю о деталях реализации так интересно, служил ли NSMutableString моей цели?
Я бы опасался, что NSMutableString попытается оптимизировать и оставить строку в памяти. Если вы хотите больше контроля, попробуйте выделить собственную память и создать из нее NSString. Если вы сделаете это, то сможете перезаписать память до того, как освободите ее.
char* block = malloc(200);
NSString* string = [[NSString alloc] initWithBytesNoCopy:length:encoding:freeWhenDone];
//use string
memset(block, 0, 200);// overwrite block with 0
[string release];
free(block);