Возвращение NSData обратно в обычный текст NSString - PullRequest
5 голосов
/ 22 января 2011

У меня есть простая строка NSString, и я преобразовываю ее в NSData:

NSData *data = [[NSData dataWithBytes:[[NSString stringWithFormat:@",%@",self.targetId] dataUsingEncoding:NSASCIIStringEncoding] 
                              length:[[NSString stringWithFormat:@",%@",self.targetId] lengthOfBytesUsingEncoding:NSASCIIStringEncoding]] retain];

Теперь я хочу получить простой текст из объекта NSData.
Если я это делаю:

NSString* dataStr = [NSString stringWithFormat:@"%@",data];

- я получаю только шестнадцатеричное выражение (т. Е. <9c3f473e 02000000 0b0000>), а не просто нужную строку!

Я также пытался использовать initWithData -

    NSString* dataStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];

Но это всегда показывает гибриш, независимо от того, какую кодировку я ему даю.

Не могли бы вы помочь здесь ?? :)

Ответы [ 2 ]

9 голосов
/ 22 января 2011

Вам нужно упростить свой первый фрагмент кода до:

NSData *data = [[NSString stringWithFormat:@",%@",self.targetId] dataUsingEncoding:NSASCIIStringEncoding] 

И тогда ваш второй фрагмент кода будет работать:

NSString* dataStr = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
1 голос
/ 22 января 2011

Сделайте следующее изменение, оно будет работать.

NSData *data = [[NSString stringWithFormat:@",%@",self.targetId] dataUsingEncoding:NSASCIIStringEncoding] ;

Вы сделали NData данных.

...