Почему Lazy Vars Swift решает ошибку: не может присвоить значение типа '(HomeViewController) -> () -> HomeViewControllerIOS

Программируем под IOS
Anonymous
Почему Lazy Vars Swift решает ошибку: не может присвоить значение типа '(HomeViewController) -> () -> HomeViewController

Сообщение Anonymous »

Ниже код дает ошибку: < /p>

Код: Выделить всё

class HomeViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

let tableView = {
let t = UITableView(frame: .zero, style: .grouped)
t.dataSource = self
t.delegate = self
return t
}()

...
}
< /code>
Ошибка: < /p>
Cannot assign value of type '(HomeViewController) -> () -> HomeViewController' to type '(any UITableViewDataSource)?'
Однако, если я изменю его на ленивый var tableview = {} () , то ошибка исчезает:

Код: Выделить всё

class HomeViewController: UIViewController, UITableViewDataSource, UITableViewDelegate {

lazy var tableView = {
let t = UITableView(frame: .zero, style: .grouped)
t.dataSource = self
t.delegate = self
return t
}()

...

}
Почему Lazy var решает эту ошибку?

Подробнее здесь: https://stackoverflow.com/questions/795 ... pe-homevie

Вернуться в «IOS»