2017-02-14 7 views
0

を設定するとき、私はこのエラーを取得しています:ここでスウィフト:型の値を<変換することはできません>期待される引数の型を<>セレクタ

cannot convert value of type nsdictionary to expected argument type string

enter image description here
は私のコードです:

let json:NSDictionary = try JSONSerialization.jsonObject(with: dataResponse, options: []) as! NSDictionary 
self.performSelector(onMainThread: Selector(updateUIwithJsonResponse), with: json, waitUntilDone: true) 

func updateUIwithJsonResponse(json:NSDictionary) { 
print(json) 
} 

performSelectorは、この関数を呼び出しています

なぜこのエラーが発生するのですか?

+0

1を試してみてくださいなぜあなたは 'NSDictionary'の代わりに、スウィフトの辞書を使用していますか? 2.なぜあなたは 'DispatchQueue'の代わりに' performSelector'を使用していますか? – rmaddy

+0

@rmaddy、私はキューを必要としないので。なぜDispatchQueueを使うのが良いと思いますか? – user2924482

+0

'DispatchQueue.main.async'を使用する方がずっとシンプルでクリーンです。ブロック内に実際のコードを書くことができます。セレクタを使いこなす必要はなく、任意の数とタイプのパラメータで動作します。 – rmaddy

答えて

1

あなたのメソッドは、パラメータを取りますので、

self.performSelector(onMainThread: #selector(updateUIwithJsonResponse(json:)), with: json, waitUntilDone: true)

+0

#selector(updateUIwithJsonResponse(json :))でjson:を削除できないのはなぜですか? – user2924482

関連する問題