在Swift中从NSString创建NSData

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Swift中从NSString创建NSData相关的知识,希望对你有一定的参考价值。

我试图最终有一个有效的NSMutableURLRequestHTTPBody,但我似乎无法将我的字符串数据(来自UITextField)变成可用的NSData对象。

我已经看到这种方法走另一条路:

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

但我似乎无法为我的用例找到任何文档。如果有必要,我愿意将字符串放入其他类型,但使用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)
}
另一答案

Swift 4 & 3

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)!
另一答案

斯威夫特4

let data = myStringVariable.data(using: String.Encoding.utf8.rawValue)
另一答案

要创建非可选数据,我建议使用它:

let key = "1234567"
let keyData = Data(key.utf8)
另一答案

在快速5

let data = Data(YourString.utf8)
另一答案

Swift 4.2

let data = yourString.data(using: .utf8, allowLossyConversion: true)

以上是关于在Swift中从NSString创建NSData的主要内容,如果未能解决你的问题,请参考以下文章

在Swift中从NSString创建NSData

如何在 Swift 中从 NSData 显示 PDF - 如何将 PDF 保存到文档文件夹 Swift - 如何在 Swift 中通过 WebView 从保存的 NSData 显示 PDF

swift实现AES解密

如何将String转换成UInt8或NSData

通过将 NSString 解释为十六进制数字来创建 NSData

在 NSURLConnection 中的 Swift 中从 completionHandler 中获取数据