945 votes

Comment convertir une valeur NSString en NSData ?

Comment convertir un NSString à la valeur NSData ?

1439voto

flitzwald Points 12163
NSString* str = @"teststring";
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];

33voto

Andrew Kolesnikov Points 1358

Convertir NSString comme ceci forcera un \0 octet, ce qui signifie NSJSONSerialization:JSONObjectWithData et d'autres échoueront si vous ne l'enlevez pas.

C'est-à-dire qu'il faut

NSData* data = [yourString dataUsingEncoding:NSUTF8StringEncoding];

et ensuite

data = [data subdataWithRange:NSMakeRange(0, [data length] - 1)];

alors n'hésitez pas à poursuivre avec NSJSONSerialization:JSONObjectWithData .

13voto

Nag Raj Points 184
NSString* myStr = @"This is the Testing String";

NSData* cData = [myStr dataUsingEncoding:NSUTF8StringEncoding];

10voto

Jerry Thomsan Points 684

Tout d'abord, vous devez utiliser dataUsingEncoding: au lieu de passer par UTF8String . Vous utilisez uniquement UTF8String lorsque vous avez besoin d'un C dans cet encodage.

Ensuite, pour UTF-16 , passe juste NSUnicodeStringEncoding au lieu de NSUTF8StringEncoding dans votre dataUsingEncoding: message.

2voto

MarkP Points 536

Il semble que quelqu'un ait créé un poste à ce sujet :

Conversion de NSString en NSData et inversement.

http://ios-blog.co.uk/tutorials/quick-tips/quick-tip-converting-nsstring-to-nsdata/

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X