これは、アプリケーションからユーザーを登録し、MySQLデータベースに登録されているプロジェクトです。これはSwift 2.3で動作しますが、私はSwift 3でそれをやりたいのですが、それを修正する方法はわかりません。Swift 2.3から3への変換エラー:typeの引数リストでdataTaskを呼び出すことはできません
ERROR on URLSESSIONS.shared.dataTask
コード:
else{
let url = URL(string: "http://localhost/billpain/secure/register.php")!
let request = NSMutableURLRequest(url: url)
request.httpMethod = "POST"
let body = "username=\(usernameTxt.text!.lowercased())&password=\(passwordTxt.text!)&email=\(emailTxt.text!)&fullname=\(firstnameTxt.text!)%20\(lastnameTxt.text!)"
request.httpBody = body.data(using: String.Encoding.utf8)
**URLSession.shared.dataTask(with: request, completionHandler: {(data:Data?, response:URLResponse?, error:NSError?) in**
if error == nil {
DispatchQueue.main.async(execute: {
do {
let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary
guard let parseJSON = json else {
print ("Error while parsing")
return
}
let id = parseJSON["id"]
if id != nil {
print(parseJSON)
}
} catch {
print("Caught an error: \(error)")
}
})
} else{
print("error: \(error)")
}
}).resume()
http://stackoverflow.com/questions/37812286/swift-3-urlsession-shared-ambiguous-reference-to-member-datataskwithcomplet? – Larme
なぜ '.mutableContainers'オプションを指定しますか?JSONを不変オブジェクトにキャストするのはなぜですか? – vadian
@kkakkurt:編集に関して、コードの書式設定にソフトウェアパッケージの名前を追加しないでください。 SwiftとMySQLはコードではなく固有名詞です。 – halfer