Comment convertir une valeur NSSsortingng en NSData?

Comment convertir une valeur NSSsortingng en NSData ?

 NSSsortingng* str = @"testssortingng"; NSData* data = [str dataUsingEncoding:NSUTF8SsortingngEncoding]; 
 NSSsortingng *str = @"helowrld"; // This converts the ssortingng to an NSData object NSData *data = [str dataUsingEncoding:NSUTF8SsortingngEncoding]; 

vous pouvez prendre référence de ce lien

Convertir NSSsortingng comme cela forcera un \0 octet de fin, ce qui signifie que NSJSONSerialization:JSONObjectWithData et d’autres échouera à moins que vous ne le supprimiez.

C’est à dire

 NSData* data = [yourSsortingng dataUsingEncoding:NSUTF8SsortingngEncoding]; 

et alors

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

alors n’hésitez pas à procéder à NSJSONSerialization:JSONObjectWithData .

Si Swift Developer venait ici,

convertir de NSSsortingng / Ssortingng en NSData

 var _nsdata = _nsssortingng.dataUsingEncoding(NSUTF8SsortingngEncoding) 

Objectif c:

 NSSsortingng *str = @"test ssortingng"; NSData *data = [NSKeyedArchiver archivedDataWithRootObject:str]; NSSsortingng *thatStr = [NSKeyedUnarchiver unarchiveObjectWithData:data]; 

Rapide:

 let str = "test ssortingng" let data = NSKeyedArchiver.archivedData(withRootObject: str) let thatStr = NSKeyedUnarchiver.unarchiveObject(with: data) as! Ssortingng 

Tout d’abord, vous devez utiliser dataUsingEncoding: au lieu de passer par UTF8Ssortingng . Vous utilisez uniquement UTF8Ssortingng lorsque vous avez besoin d’une chaîne C dans cet encodage.

Ensuite, pour UTF-16 , transmettez simplement NSUnicodeSsortingngEncoding au lieu de NSUTF8SsortingngEncoding dans votre message dataUsingEncoding:

 NSSsortingng *str = @"hello"; NSData *data = [NSData dataWithBytes:str.UTF8Ssortingng length:str.length]; 

Pour Swift 3, vous allez principalement convertir de Ssortingng en Data .

 let mySsortingng = "test" let myData = mySsortingng.data(using: .utf8) print(myData) // Optional(Data) 
 NSSsortingng *str = @"Banana"; NSData *data = [str dataUsingEncoding:NSUTF8SsortingngEncoding allowLossyConversion:true]; 

Objectif c

 NSSsortingng *str = @"Hello World"; NSData *data = [str dataUsingEncoding:NSUTF8SsortingngEncoding allowLossyConversion:NO]; 

Rapide

 let str = "Hello World" let data = ssortingng.data(using: Ssortingng.Encoding.utf8, allowLossyConversion: false)