我试图最终NSMutableURLRequest
使用有效的HTTPBody
,但是似乎无法将字符串数据(来自UITextField
)放入可用的NSData
对象中。
我已经看到这种方法的另一种选择:
NSString(data data: NSData!, encoding encoding: UInt)
但是我似乎找不到用例的任何文档。我愿意在必要时将字符串放入其他类型,但是NSData
使用Swift的初始化选项似乎都不是我想要的。
Answers:
在Swift 3中
let data = string.data(using: .utf8)
在Swift 2中(或者如果您已经有一个NSString
实例)
let data = string.dataUsingEncoding(NSUTF8StringEncoding)
在Swift 1中(或者如果您有swift String
):
let data = (string as NSString).dataUsingEncoding(NSUTF8StringEncoding)
还要注意,这 data
是一个Optional<NSData>
(因为转换可能会失败),因此您需要在使用前将其拆开,例如:
if let d = data {
println(d)
}
Optional<NSData>
,您需要在使用前将其拆开
Data
从String
对象创建对象在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)!
迅速5
let data = Data(YourString.utf8)