Kaip konvertuoti NSString reikšmę į NSData?

Kaip konvertuoti NSString reikšmę į NSData ?

883
23 мая '09 в 14:20 2009-05-23 14:20 anish yra nustatytas gegužės 23 d ., 09:20, 2009-05-23 14:20
@ 10 atsakymų
 NSString* str = @"teststring"; NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding]; 
1378
23 мая '09 в 14:34 2009-05-23 14:34 flitzwald atsakymas, pateiktas gegužės 23 d. , 09:34 , 2009-05-23 14:34
 NSString *str = @"helowrld"; // This converts the string to an NSData object NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding]; 

galite naudoti nuorodą

64
10 марта '15 в 15:39 2015-03-10 15:39 Atsakymą pateikia ALOK KUMAR kovo 10-15 d. 15:39 2015-03-10 15:39

Tokio NSString konvertavimas baigs baitą \0 , o tai reiškia NSJSONSerialization:JSONObjectWithData , o kiti nepavyks, jei neištrinsite.

t.y. daryti

 NSData* data = [yourString dataUsingEncoding:NSUTF8StringEncoding]; 

ir tada

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

tada nedvejodami pereikite prie NSJSONSerialization:JSONObjectWithData .

29
25 окт. Spalio 25 d. Atsakymą pateikė Andrew Kolesnikovas . 2011-10-25 22:47 '11, 22:47, 2011-10-25 22:47

„Swift“ kūrėjo atveju

konvertuoti iš NSString / String į NSData p>

 var _nsdata = _nsstring.dataUsingEncoding(NSUTF8StringEncoding) 
20
03 марта '15 в 18:28 2015-03-03 18:28 Atsakymas, kurį pateikė Sruit A.Suk 03.03.15 val. 18:28 2015-03-03 18:28

C tikslas:

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

Swift:

 let str = "test string" let data = NSKeyedArchiver.archivedData(withRootObject: str) let thatStr = NSKeyedUnarchiver.unarchiveObject(with: data) as! String 
16
27 марта '16 в 2:03 2016-03-27 02:03 atsakymas duodamas Shamsiddin kovo 27 d. 16:03 2016-03-27 02:03

Visų pirma, turėtumėte naudoti „ dataUsingEncoding: vietoj UTF8String . Naudokite UTF8String tik UTF8String kai šiam kodavimui reikia C eilutės.

Tada UTF-16 tiesiog perduoti NSUnicodeStringEncoding vietoj NSUTF8StringEncoding į dataUsingEncoding: pranešimą.

11
13 сент. Jerry Thomsan atsakymas rugsėjo 13 d 2012-09-13 11:02 '12 at 11:02 2012-09-13 11:02
 NSString *str = @"hello"; NSData *data = [NSData dataWithBytes:str.UTF8String length:str.length]; 
6
27 нояб. atsakymą pateikė Nex Mishra lapkričio 27 d. 2015-11-27 20:46 '15, 20:46, 2015-11-27 20:46

„Swift 3“ iš esmės pakeisite String į Data .

 let myString = "test" let myData = myString.data(using: .utf8) print(myData) // Optional(Data) 
6
01 нояб. atsakymas pateikiamas jacks205 01 nov. 2016-11-01 10:59 '16 at 10:59 2016-11-01 10:59
 NSString *str = @"Banana"; NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:true]; 
1
14 апр. Kamani Jasmin atsakymas balandžio 14 d 2018-04-14 00:37 '18 prie 0:37 2018-14-14 00:37

Tikslas c

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

greitai

 let str = "Hello World" let data = string.data(using: String.Encoding.utf8, allowLossyConversion: false) 
0
17 апр. Atsakyti Rohit Makwana balandžio 17 2018-04-17 09:19 '18, 9:19