Programing

Swift의 NSString에서 NSData 생성

crosscheck 2020. 5. 24. 12:55
반응형

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)

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

스위프트 4.2

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

참고 URL : https://stackoverflow.com/questions/24039868/creating-nsdata-from-nsstring-in-swift

반응형