Creating NSData from NSString in Swift

时光怂恿深爱的人放手 提交于 2019-11-26 07:07:08

问题


I\'m trying to ultimately have an NSMutableURLRequest with a valid HTTPBody, but I can\'t seem to get my string data (coming from a UITextField) into a usable NSData object.

I\'ve seen this method for going the other way:

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

But I can\'t seem to find any documentation for my use case. I\'m open to putting the string into some other type if necessary, but none of the initialization options for NSData using Swift seem to be what I\'m looking for.


回答1:


In Swift 3

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

In Swift 2 (or if you already have a NSString instance)

let data = string.dataUsingEncoding(NSUTF8StringEncoding)

In Swift 1 (or if you have a swift String):

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

Also note that data is an Optional<NSData> (since the conversion might fail), so you'll need to unwrap it before using it, for instance:

if let d = data {
    println(d)
}



回答2:


Swift 4 & 3

Creating Data object from String object has been changed in Swift 3. Correct version now is:

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



回答3:


Here very simple method

let data = string.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)



回答4:


// 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:


Swift 4

let data = myStringVariable.data(using: String.Encoding.utf8.rawValue)



回答6:


To create not optional data I recommend using it:

let key = "1234567"
let keyData = Data(key.utf8)



回答7:


In swift 5

let data = Data(YourString.utf8)



回答8:


Swift 4.2

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


来源:https://stackoverflow.com/questions/24039868/creating-nsdata-from-nsstring-in-swift

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!