[xcode] Swift의 NSString에서 NSData 생성

궁극적으로 NSMutableURLRequestwith로 시도하고 HTTPBody있지만 문자열 데이터 (에서 오는 UITextField)를 사용 가능한 NSData객체 로 가져올 수 없습니다 .

다른 방법으로가는이 방법을 보았습니다.

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

그러나 유스 케이스에 대한 문서를 찾을 수없는 것 같습니다. 필요한 경우 문자열을 다른 유형으로 넣을 수는 있지만 NSDataSwift 를 사용 하기위한 초기화 옵션은 내가 원하는 것 같습니다.



답변

스위프트 3에서

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

Swift 2에서 (또는 이미 NSString인스턴스 가있는 경우)

let data = string.dataUsingEncoding(NSUTF8StringEncoding)

스위프트 1에서 (또는 당신이 신속한 경우 String) :

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

또한 참고 dataOptional<NSData>(변환이 실패 할 수 있기 때문에), 당신은 예를 들어, 그것을 사용하기 전에 랩을 해제해야합니다 그래서 :

if let d = data {
    println(d)
}


답변

스위프트 4 & 3

Swift 3에서 Data객체에서 String객체 생성 이 변경되었습니다. 이제 올바른 버전은 다음과 같습니다.

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


답변

여기에 매우 간단한 방법

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


답변

스위프트 4

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


답변

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


답변

선택적 데이터를 만들지 않으려면 사용하는 것이 좋습니다.

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


답변

스위프트 4.2

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