2012-10-16 1 views
5

Ecco il codice che ho provato a convertire NSData in NSString ma il programma restituisce "Program received signal: SIGABRT".Objective-C Converti NSData in NSString

NSString *string= [NSString stringWithUTF8String:[data bytes]]; 

O

NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

C'è un altro modo migliore per farlo?

+0

è la vostra 'data' _ Variabile? –

+4

E se non è nulla, contiene effettivamente i byte di una stringa nella codifica UTF-8? Come è stato creato l'oggetto NSData? – rmaddy

+1

@rmaddy Mentre ciò risulterebbe in un risultato stringa non definito (quasi certamente solo un ritorno nullo), non risulterebbe in un SIGABRT su quella linea. –

risposta

7

Here's a highly up-voted answer che mostra come farlo. In poche parole:

NSString *string = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

La prima idea si presenta come un fallire a causa di invio [data bytes]. stringWithUTF8String non è preparato per un vuoto *. La seconda idea sembra funzionare, anche con input nulli.

0

Swift-3

enter image description here

stringa let = data.base64EncodedString()

+0

nella tua fretta di fare un commento "ooh, in rapido ...", potresti voler leggere la domanda vera dell'OP – eric