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)