NSString
値をNSData
に変換する方法
NSString* str = @"teststring";
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];
NSString *str = @"helowrld";
// This converts the string to an NSData object
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding];
このリンクから参照できます link
行う:
NSData *data = [yourString dataUsingEncoding:NSUTF8StringEncoding];
それからNSJSONSerialization:JSONObjectWithData
に進んでください。
コメント、公式ドキュメント、および 検証 に従って、この回答はNULLターミネータの疑いのある削除について更新されました。
dataUsingEncodingで文書化されているとおり: :
戻り値
2番目の引数としてNOを指定して
dataUsingEncoding:allowLossyConversion:
を呼び出した結果
getCString:maxLength:encoding: および cStringUsingEncoding: :で文書化されています。
dataUsingEncoding:allowLossyConversion:
によって返されるデータはNULLターミネータを持たないなので、厳密なC文字列ではありません。
Swift Developerがここに来た場合は、
nSString/StringからNSDataに変換する方法
var _nsdata = _nsstring.dataUsingEncoding(NSUTF8StringEncoding)
Objective-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
を使うべきです。そのエンコーディングでC
文字列が必要な場合にのみUTF8String
を使用します。
次に、UTF-16
には、NSUTF8StringEncoding
メッセージにdataUsingEncoding:
の代わりにNSUnicodeStringEncoding
を渡します。
Swift 3では、ほとんどがString
からData
に変換されます。
let myString = "test"
let myData = myString.data(using: .utf8)
print(myData) // Optional(Data)
NSString *str = @"hello";
NSData *data = [NSData dataWithBytes:str.UTF8String length:str.length];
Objective-C:
NSStringからNSDataへ:
NSString* str= @"string";
NSData* data=[str dataUsingEncoding:NSUTF8StringEncoding];
NSDataからNSStringへ:
NSString* newStr = [[NSString alloc] initWithData:theData encoding:NSUTF8StringEncoding];
スイフト:
データへの文字列:
var testString = "string"
var somedata = testString.data(using: String.Encoding.utf8)
文字列へのデータ:
var backToString = String(data: somedata!, encoding: String.Encoding.utf8) as String!
NSString *str = @"Banana";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:true];
Objective-C
NSString *str = @"Hello World";
NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:NO];
迅速
let str = "Hello World"
let data = string.data(using: String.Encoding.utf8, allowLossyConversion: false)