Невозможно вызвать 'JSON' со списком аргументов типа '((Any))' - Использование AlamoFire & SwiftyJSON - PullRequest
0 голосов
/ 07 апреля 2020

В моем предыдущем проекте с использованием более старых версий Alamofire и Swifty JSON, с использованием JSON (response.result.value) работало просто отлично. Я пытался реализовать код в моем новом проекте, но получал некоторые ошибки, которых раньше не видел. Я видел некоторые вопросы, задаваемые по этому поводу здесь, в SO, но ни одно из решений, казалось, не решило мою проблему (если я что-то пропустил).

AF.request(self.apiEndpoint,
             method: .get,
             parameters: self.parameters,
             headers: self.headers,
             interceptor: nil).validate().responseJSON { (response) in

                switch response.result {
                case .success(let value):
                  let json = JSON(value)
                  print(json)
                case .failure(_):
                  print(response)
                }
}

Это возвращает следующую ошибку:

Cannot invoke 'JSON' with an argument list of type '((Any))'

1 Ответ

0 голосов
/ 07 апреля 2020

Это странная ситуация. Однако, что мне удалось определить, так это то, что если я вызываю

JSON(value)

, это завершается с ошибкой невозможности вызвать конструктор с типом (Any).

Однако, когда я явно Назовите модуль следующим образом:

let json = SwiftyJSON.JSON(value)

Xcode больше не жалуется на эту ошибку.

Очень странно. Я сделал go назад и проверил, что JSON () ссылался на Swifty JSON, когда пытался использовать его без специального наименования модуля - просто чтобы убедиться, что не было какого-то метода именования cla sh чем-то другим - и это сделал. Так что я не совсем уверен, почему это работает, но, надеюсь, это поможет кому-то еще. Или кто-то может дать мне лучший ответ, если я что-то сделал неправильно.

...