我试图最终拥有一个有效NSMutableURLRequest
的{{1}},但我似乎无法获取我的字符串数据(来自HTTPBody
)到一个可用的UITextField
对象。
我已经看到了这种方法的另一种方式:
NSData
但我似乎无法为我的用例找到任何文档。如果有必要,我可以将字符串放入其他类型,但使用Swift的NSString(data data: NSData!, encoding encoding: UInt)
的初始化选项似乎都不是我想要的。
答案 0 :(得分:348)
在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)
}
答案 1 :(得分:31)
在Swift 3中更改了从Data
对象创建String
对象。现在正确的版本是:
let data = "any string".data(using: .utf8)
答案 2 :(得分:4)
这里非常简单的方法
let data = string.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
答案 3 :(得分:3)
// 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)!
答案 4 :(得分:2)
Swift 4
let data = myStringVariable.data(using: String.Encoding.utf8.rawValue)
答案 5 :(得分:2)
要创建非可选数据,我建议使用它:
let key = "1234567"
let keyData = Data(key.utf8)
答案 6 :(得分:1)
Swift 4.2
let data = yourString.data(using: .utf8, allowLossyConversion: true)
答案 7 :(得分:1)
快速5
a3
答案 8 :(得分:0)
将字符串转换为数据
extension String {
func toData() -> Data {
return Data(self.utf8)
}
}
将数据转换为字符串
extension Data {
func toString() -> String {
return String(decoding: self, as: UTF8.self)
}
}