Использование неразрешенного идентификатора «self» в Swift 5 - PullRequest
0 голосов
/ 26 июня 2019

Я хотел написать приложение погоды, используя OpenWeatherMap Api. Все выглядит хорошо для меня. Приложение было написано с использованием учебника в Интернете, и все выглядит 1: 1.

let weatherURL = URL(string: "http://api.openweathermap.org/data/2.5/weather?q=Warsaw,pl?&units=imperial&APPID=cb9325925ed023b38a64c3d8da3c345c")!
let dataTask = session.dataTask(with: weatherURL) {
    (data: Data?, response: URLResponse?, error: Error?) in
    if let error = error {
        print("Error:\n\(error)")
    } else {
        if let data = data {
            let dataString = String(data: data, encoding: String.Encoding.utf8)
            print("All the weather data:\n\(dataString!)")
            if let jsonObj = try? JSONSerialization.jsonObject(with: data, options: .allowFragments) as? NSDictionary {
                if let mainDictionary = jsonObj.value(forKey: "main") as? NSDictionary {
                    if let temperature = mainDictionary.value(forKey: "temp") {
                        DispatchQueue.main.async {
                            self.weatherLabel.text = "Temperatura w Warszawie: \(temperature)°C"
                        }
                    }
                } else {
                    print("Error: unable to find temperature in dictionary")
                }
            } else {
                print("Error: unable to convert json data")
            }
        } else {
            print("Error: did not receive data")
        }
    }
}```

1 Ответ

0 голосов
/ 26 июня 2019

Проблема в том, что ваш код

let weatherURL = ...
let dataTask = ...

... должен быть внутри некоторого метода некоторой структуры или класса. Если вы посмотрите на оригинальное руководство, вы увидите, что это так. Ваш код просто висит свободно, в месте, где исполняемый код запрещен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...