1. ホーム
  2. xcode

[解決済み] Xcode Error メンバー 'dataTask(with:completionHandler:)' へのあいまいな参照 [重複].

2022-02-05 04:39:50

質問

私は、swift 2.3 プロジェクトを持っていて、swift 3.0 にアップデートしたところ、以下のコードが壊れました。

    let task = URLSession.shared.dataTask(with: request, completionHandler: {
        data, response, error in

        if error != nil {
            print("error=\(error)")
            return
        }

        print("response = \(response)")

        let responseString = NSString(data: data!, encoding: String.Encoding.utf8)
        print("responseString = \(responseString)")
    }) 
    task.resume()

修正方法がわからない

どのように解決するのですか?

このエラーは requestNSURLRequest ではなく URLRequest .

let url = URL(string: urlString)!
let request = URLRequest(url: url)

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    guard let data = data, error == nil else {
        print("error=\(error)")
        return
    }

    print("response = \(response)")

    let responseString = String(data: data, encoding: .utf8)
    print("responseString = \(responseString)")
}
task.resume()

また、変異させる場合は URLRequest を使用します。 var :

let url = URL(string: urlString)!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.httpBody = ...

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    guard let data = data, error == nil else {
        print("error=\(error)")
        return
    }

    print("response = \(response)")

    let responseString = String(data: data, encoding: .utf8)
    print("responseString = \(responseString)")
}
task.resume()

また、注意点として NSStringString .