Может кто-нибудь объяснить мне, почему расширение работает таким образом.
Я написал расширение для моего основного ViewController, которое включает в себя функцию:
extension WeatherMainScreen {
func load(lat: Double, long: Double){
service.getWeatherInfo(lat: lat, long: long) { [weak self] temp in
self?.tempNumber.text = "\(temp.currently.temperature)"
self?.results = temp.daily.data
self?.tableView.reloadData()
}
}
}
Проблема в том, что если я поместив это расширение в класс ViewController, я получаю сообщение об ошибке «Объявление действует только в области действия файла». Но если я поставлю выше, это работает нормально.
Странная часть (для меня) в том, что в этом конкретном проекте мой класс ViewController довольно большой, но если я попробую это именно расширение в другом проекте, который имеет гораздо меньший размер Класс ViewController и расширение для него под ним, все работает нормально, без ошибок.
Вопрос в том, почему работает расширение над классом V C, но если я помещаю под класс V C, это показывает эта ошибка «Декларация действительна только в области видимости файла»?
Дополнительные пояснения
Этот способ не работает, показывая ошибку объявления:
class WeatherMainScreen: UIViewController {
}
extension WeatherMainScreen {
// your code
}
Так работает :
extension WeatherMainScreen {
// your code
}
class WeatherMainScreen: UIViewController {
}
Я не ставлю расширение внутри класса