943

NSString値をに変換するにはどうすればよいNSDataですか?

4

14 に答える 14

1439
NSString* str = @"teststring";
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];
于 2009-05-23T11:34:10.180 に答える
66
NSString *str = @"helowrld";
// This converts the string to an NSData object
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];

このリンクから参照できます

于 2015-03-10T12:39:11.420 に答える
33

行う:

NSData *data = [yourString dataUsingEncoding:NSUTF8StringEncoding];

その後、お気軽に に進んでNSJSONSerialization:JSONObjectWithDataください。


NULLターミネータに関する回答の訂正

コメント、公式文書、および検証に続いて、この回答は、疑わしい NULL ターミネータの削除に関して更新されました。

  1. dataUsingEncoding:で文書化されているとおり:

    戻り値

    dataUsingEncoding:allowLossyConversion:第二引数NOで呼び出した結果

  2. getCString:maxLength:encoding:およびcStringUsingEncoding:で文書化されているとおり:

    NULL ターミネータがないためdataUsingEncoding:allowLossyConversion:、返されるデータは厳密な C 文字列ではないことに注意してください。

于 2011-10-25T19:47:04.267 に答える
20

ここに来るSwift Developerの場合、

NSString / String から NSData に変換する

var _nsdata = _nsstring.dataUsingEncoding(NSUTF8StringEncoding)
于 2015-03-03T15:28:31.137 に答える
18

目的 C:

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

迅速:

let str = "test string"
let data = NSKeyedArchiver.archivedData(withRootObject: str)
let thatStr = NSKeyedUnarchiver.unarchiveObject(with: data) as! String
于 2016-03-26T23:03:52.877 に答える
10

まず、dataUsingEncoding:を通過する代わりにを使用する必要がありますUTF8String。そのエンコーディングで文字列UTF8Stringが必要な場合にのみ使用します。C

次に、の場合、メッセージの代わりにUTF-16渡すだけです。NSUnicodeStringEncodingNSUTF8StringEncodingdataUsingEncoding:

于 2012-09-13T08:02:28.580 に答える
6
NSString *str = @"hello";
NSData *data = [NSData dataWithBytes:str.UTF8String length:str.length];
于 2015-11-27T17:46:07.043 に答える
3

迅速:

スウィフト 5.x

let myStringToConvert = "My String to Convert in Data"
let myData = str.data(using: .utf8)

文字列からデータへ:

var myStringToConvert = "My String to Convert in Data"
var myData = testString.data(using: String.Encoding.utf8)

データから文字列へ:

var backToMyString = String(data: myData!, encoding: String.Encoding.utf8) as String!

目的 C:

NSString から NSData へ:

NSString* myStringToConvert= @"My String to Convert in Data";
NSData* myData=[str dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];

NSData から NSString :

NSString* backToMyString = [[NSString alloc] initWithData: myData encoding:NSUTF8StringEncoding];
于 2021-07-05T10:43:10.793 に答える