在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)!