在Swift中从NSString创buildNSData

我试图最终有一个有效的HTTPBody NSMutableURLRequest ,但我似乎无法得到我的string数据(来自UITextField )到一个可用的NSData对象。

我已经看到了这种方法:

 NSString(data data: NSData!, encoding encoding: UInt) 

但我似乎无法find我的用例的任何文档。 我打算把string放入其他types,如果有必要,但没有使用Swift的NSData的初始化选项似乎是我正在寻找。

在Swift 3

 let data = string.data(using: .utf8) 

在Swift 2中(或者如果你已经有了一个NSString实例)

 let data = string.dataUsingEncoding(NSUTF8StringEncoding) 

在Swift 1中(或者如果你有一个快速的String ):

 let data = (string as NSString).dataUsingEncoding(NSUTF8StringEncoding) 

另外请注意, data是一个Optional<NSData> (因为转换可能会失败),所以你需要在使用它之前解开它,例如:

 if let d = data { println(d) } 

斯威夫特4和3

从Swift中创buildData对象的对象已经在Swift 3中改变了。现在正确的版本是:

 let data = "any string".data(using: .utf8) 

这里非常简单的方法

 let data = string.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) 
 // Checking the format var urlString: NSString = NSString(data: jsonData, encoding: NSUTF8StringEncoding) // Convert your data and set your request's HTTPBody property var stringData: NSString = NSString(string: "jsonRequest=\(urlString)") var requestBodyData: NSData = stringData.dataUsingEncoding(NSUTF8StringEncoding)!