Преобразование данных в текст и отображение в UITextField - PullRequest
0 голосов
/ 12 октября 2011

У меня есть объект NSData с именем objNSData, и я могу преобразовать строку в этот объект NSData.Я не могу понять, как преобразовать NSData обратно в строку, это вообще возможно?Я знаю, что это может быть сделано в Visual Basic с помощью такой команды, как

Data.ToString

Есть ли что-то подобное в Objective-C?

Ответы [ 2 ]

2 голосов
/ 12 октября 2011

NSData просто содержит необработанные байты. Вам нужно кодирование, чтобы идти вперед и назад. Только с необработанными байтами это бесполезно, если вы не знаете, как их кодировать. Например, в этом фрагменте мы преобразуем строку в байты, а затем обратно в строку, используя кодировку UTF8 (набор символов).

NSString *foo = @"BarBaz";
NSData *data = [foo dataUsingEncoding:NSUTF8StringEncoding];
NSString *fooString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"string=%@", fooString);

Это выводит:

2011-10-11 20:41:20.708 Craplet[3413:707] string=BarBaz
1 голос
/ 12 октября 2011

Ну, ты должен знать, что это за данные. Если это графические данные, это не будет очень симпатичная строка.

Но я предполагаю, что у вас есть какие-то символьные данные. Это ASCII? UTF8? UTF16? Клингон

Если это UTF8, вы бы использовали что-то вроде

NSString* theString = [NSString stringWithUTF8String:[yourDataObject bytes]];

Но есть много переменных, например, завершены ли нулевые данные?

...