NSString
値をに変換するにはどうすればよいNSData
ですか?
14 に答える
NSString* str = @"teststring";
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];
NSString *str = @"helowrld";
// This converts the string to an NSData object
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
このリンクから参照できます
行う:
NSData *data = [yourString dataUsingEncoding:NSUTF8StringEncoding];
その後、お気軽に に進んでNSJSONSerialization:JSONObjectWithData
ください。
NULLターミネータに関する回答の訂正
コメント、公式文書、および検証に続いて、この回答は、疑わしい NULL ターミネータの削除に関して更新されました。
dataUsingEncoding:で文書化されているとおり:
戻り値
dataUsingEncoding:allowLossyConversion:
第二引数NOで呼び出した結果getCString:maxLength:encoding:およびcStringUsingEncoding:で文書化されているとおり:
NULL ターミネータがないため
dataUsingEncoding:allowLossyConversion:
、返されるデータは厳密な C 文字列ではないことに注意してください。
ここに来るSwift Developerの場合、
NSString / String から NSData に変換する
var _nsdata = _nsstring.dataUsingEncoding(NSUTF8StringEncoding)
目的 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
まず、dataUsingEncoding:
を通過する代わりにを使用する必要がありますUTF8String
。そのエンコーディングで文字列UTF8String
が必要な場合にのみ使用します。C
次に、の場合、メッセージの代わりにUTF-16
渡すだけです。NSUnicodeStringEncoding
NSUTF8StringEncoding
dataUsingEncoding:
NSString *str = @"hello";
NSData *data = [NSData dataWithBytes:str.UTF8String length:str.length];
迅速:
スウィフト 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];