Я получаю эту ошибку:Swift: не может преобразовать значение типа <> к ожидаемому типу аргумента <> при установке селектора
cannot convert value of type nsdictionary to expected argument type string
let json:NSDictionary = try JSONSerialization.jsonObject(with: dataResponse, options: []) as! NSDictionary
self.performSelector(onMainThread: Selector(updateUIwithJsonResponse), with: json, waitUntilDone: true)
performSelector
называет эту функцию:
func updateUIwithJsonResponse(json:NSDictionary) {
print(json)
}
Любой из вас знает, почему я получаю эту ошибку?
1. Почему вы используете 'NSDictionary' вместо Swift словаря? 2. Почему вы используете 'performSelector' вместо' DispatchQueue'? – rmaddy
@rmaddy, потому что мне не нужна очередь. Почему вы думаете, что лучше использовать DispatchQueue? – user2924482
Использование 'DispatchQueue.main.async' намного проще и чище. Вы можете просто написать фактический код внутри блока. Не нужно возиться с селекторами, и он работает с любым количеством и типами параметров. – rmaddy