[解決済み] Swift 3 URLSession.shared() メンバー 'dataTask(with:completionHandler:) エラーへのあいまいな参照 (バグ)
2022-04-23 08:14:23
質問
こんにちは、私はswift2.2用のjsonパースコードが動作していますが、私はSwift3.0のためにそれを使用すると、このエラーが発生します。
ViewController.swift:132:31: メンバー 'dataTask(with:completionHandler:)' へのあいまいな参照
私のコードはこちら
let listUrlString = "http://bla.com?batchSize=" + String(batchSize) + "&fromIndex=" + String(fromIndex)
let myUrl = URL(string: listUrlString);
let request = NSMutableURLRequest(url:myUrl!);
request.httpMethod = "GET";
let task = URLSession.shared().dataTask(with: request) {
data, response, error in
if error != nil {
print(error!.localizedDescription)
DispatchQueue.main.sync(execute: {
AWLoader.hide()
})
return
}
do {
let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSArray
if let parseJSON = json {
var items = self.categoryList
items.append(contentsOf: parseJSON as! [String])
if self.fromIndex < items.count {
self.categoryList = items
self.fromIndex = items.count
DispatchQueue.main.async(execute: {
self.categoriesTableView.reloadData()
AWLoader.hide()
})
}else if( self.fromIndex == items.count){
DispatchQueue.main.async(execute: {
AWLoader.hide()
})
}
}
} catch {
AWLoader.hide()
print(error)
}
}
task.resume()
アイデアをありがとうございました。
どのように解決するのですか?
コンパイラは関数のシグネチャに惑わされています。このように修正することができます。
let task = URLSession.shared.dataTask(with: request as URLRequest) {
しかし、quot;request" を次のようにキャストする必要はないことに注意してください。
URLRequest
この署名では
もし
として先に宣言されています。
URLRequest
ではなく
NSMutableURLRequest
:
var request = URLRequest(url:myUrl!)
との間の自動キャストです。
NSMutableURLRequest
と新しい
URLRequest
が失敗しているため、ここでキャスティングを行うことを余儀なくされました。
関連
-
libc++abi.dylib が NSException 型の捕捉できない例外で終了する理由 エラー
-
[解決済み] App Storeのアプリと連動させる方法
-
[解決済み] Objective-Cで文字列が空かどうかをテストするにはどうすればよいですか?
-
[解決済み] UITextViewのマージン/パディングをなくす方法
-
[解決済み] UIDevice uniqueIdentifierは非推奨 - どうしたらいいの?
-
[解決済み] iphoneアプリのベータテストはどのように行うのですか?
-
[解決済み] SwiftでiOSキーボードを任意の場所でタッチして閉じる
-
[解決済み] Swift で HTTP リクエストを行うにはどうしたらいいですか?
-
[解決済み] UIImageのサイズを変更する最も簡単な方法?
-
[解決済み] ファイルはユニバーサル(3スライス)ですが、iOSの静的ライブラリのための(n)ARMv7-sスライスエラーが含まれていない、どうにかして回避するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Xcode Error メンバー 'dataTask(with:completionHandler:)' へのあいまいな参照 [重複].
-
制御が非ボイド関数の終了に達する
-
dyld: ライブラリがロードされていません。エラーの解決
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] Objective-Cで、ある文字列が他の文字列を含んでいるかどうかを調べるにはどうすればよいですか?
-
[解決済み] Xcode 6のバグ:Interface Builderファイル内の不明なクラス
-
[解決済み] iPhone 5の画面解像度に対応したアプリを開発・移行するには?
-
[解決済み] Swiftを使用してアプリのバージョンとビルド番号を取得するにはどうすればよいですか?
-
[解決済み] Swift 3, 4, 5 で dispatch_after GCD を書くにはどうしたらいいですか?
-
[解決済み] iOS 7でステータスバーとナビゲーションバーがビューの境界を越えて表示される