Вы можете поместить NUL-символ в экземпляр NSString
, вот один пример:
int main() {
NSString *string = [NSString stringWithFormat: @"Hello%CWorld!", 0];
NSData *bytes = [string dataUsingEncoding: NSUTF8StringEncoding];
NSLog(@"string: %@", string);
NSLog(@"bytes: %@", bytes);
return 0;
}
Помните , что в неожиданных моментах в вашем приложениивыполнение, строка будет преобразована в строку C (или что-то подобное) для взаимодействия с API более низкого уровня, и это приведет к обрезанию строки.Например, выходные данные вышеприведенной программы выглядят так:
2011-06-02 09: 18: 30.307 Без названия [294: 707] строка: Hello
2011-06-02 09: 18: 30.309 Без названия [294: 707] байт: <48656c6c 6f00576f 726c6421>
Показывает, что сам NSString
полностью исправен, но NSLog()
не будет отображаться правильно.