Я использую пользовательский объект dataSource для моего tableView:
class MyDataSource: NSObject, UITableViewDataSource {
// ...
}
Отлично работает в этом коде:
class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
// Declare as stored property
let dataSource = MyDataSource()
override func viewDidLoad() {
super.viewDidLoad()
tableView.dataSource = dataSource
}
}
Но tableView ничего не показывает (= MyDataSource
метод не вызван) в этом коде:
class ViewController: UIViewController {
@IBOutlet weak var tableView: UITableView!
override func viewDidLoad() {
super.viewDidLoad()
// Declare as local variable
let dataSource = MyDataSource()
tableView.dataSource = dataSource
}
}
Мои вопросы:
- Почему я должен объявить
MyDataSource
как хранимое свойство?
- Если я использую локальную переменную, когда мой tableView теряет источник данных?