Этот код был взят непосредственно из учебного пособия для Swift 4.2
Нет, это не так.Код , который у вас никогда не был верным, в Swift 4.2 или любой другой версии Swift.Вы, возможно, слепо скопировали и вставили, не глядя на общий контекст.
Проблема в том, что код, как он у вас есть, сидит "свободно" наверху вашего контроллера представления или другого объявления класса,возможно, что-то вроде этого:
class MyViewController : UIViewController {
let cgpurl = // ...
let task = // ...
}
Это неправильно.Основное правило программирования Swift заключается в том, что исполняемый код может существовать только в функции .Например:
class MyViewController : UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let cgpurl = // ...
let task = // ...
}
}
Это может решить не все ваши проблемы, но, по крайней мере, вы пройдете мимо самой основной ошибки, которую вы делаете, и ошибка компиляции «Cannot use instance member» исчезнет.