궁극적으로 NSMutableURLRequest
with로 시도하고 HTTPBody
있지만 문자열 데이터 (에서 오는 UITextField
)를 사용 가능한 NSData
객체 로 가져올 수 없습니다 .
다른 방법으로가는이 방법을 보았습니다.
NSString(data data: NSData!, encoding encoding: UInt)
그러나 유스 케이스에 대한 문서를 찾을 수없는 것 같습니다. 필요한 경우 문자열을 다른 유형으로 넣을 수는 있지만 NSData
Swift 를 사용 하기위한 초기화 옵션은 내가 원하는 것 같습니다.
답변
스위프트 3에서
let data = string.data(using: .utf8)
Swift 2에서 (또는 이미 NSString
인스턴스 가있는 경우)
let data = string.dataUsingEncoding(NSUTF8StringEncoding)
스위프트 1에서 (또는 당신이 신속한 경우 String
) :
let data = (string as NSString).dataUsingEncoding(NSUTF8StringEncoding)
또한 참고 data
인 Optional<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)