私は現在、迅速な学習をしていますが、今は数時間からエラーを理解しようとしています。私はPHPスクリプトからクエリに感謝のXMLファイルを取得しようとしていると私はコールバックとしてそれらのクエリの結果を得るために完了ハンドラを使用しています。完了ハンドラとスウィフト
問題は、私がこれらの技術に慣れていないということです。問題は、引数が欠落しているということです。ここで
は完了ハンドラを使用する関数です:
func misctest()
{
let dbc : dataBaseCloner = dataBaseCloner()
let output: String
connect(completion : { (output) in
print(output)
})
}
コードが表示さのこの作品のコールについては、このエラー:
func connect(completion: (String) ->())
{
let password : String = "psw"
let login : String = "log"
let postString : String = "login=\(login)&password=\(password)"
let urlString = "http://www.mydomain.fr/script.php"
var output : String = ""
let request = NSMutableURLRequest(url: NSURL(string: urlString)! as URL)
request.httpMethod = "POST"
request.httpBody = postString.data(using: String.Encoding.utf8)
let task = URLSession.shared.dataTask(with: request as URLRequest){
data, response, error in
if error != nil {
print("error=\(error)")
return
}
let responseString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
print("responseString = \(responseString)")
output = responseString as! String
}
task.resume()
completion(output)
}
そして、ここでは、私は、この関数を呼び出すコードの一部です接続する:
>>>Missing argument for parameter #2 in call
どうしたのですか?なぜ2つのパラメータが必要なのでしょうか?
ありがとうございました。
Elbattore
これはあなたのエラーを修復することはできませんが、非同期で出力が常に空であるため、タスクの補完に「完了(出力)」を移動する必要があります –