Я просматривал часть своего кода и внезапно понял, что UIViewController, который имеет UITableView
и является datasource
и delegate
этого UITableView
, не объявляет протоколы <UITableViewDataSource, UITableViewDelegate>
, а простоимеет методы, но никогда не объявляет протоколы.
Как это вообще работает? Согласно документации:
dataSource
The object that acts as the data source of the receiving table view.
@property(nonatomic, assign) id<UITableViewDataSource> dataSource
Discussion
The data source must adopt the UITableViewDataSource protocol. The data source is not retained.
delegate
The object that acts as the delegate of the receiving table view.
@property(nonatomic, assign) id<UITableViewDelegate> delegate
Discussion
The delegate must adopt the UITableViewDelegate protocol. The delegate is not retained.
НЕТ предупреждений любого типа, у меня есть необходимые методыКонечно, чтобы сделать эту работу, и все работает отлично, почему это работает ?.Я не наследую от UITableViewController
, который, как я знаю, объявляет эти протоколы, это просто подкласс UIViewController
.
РЕДАКТИРОВАТЬ: Очевидно, IB не выдаст вам никаких предупреждений, если он там установлен, он делает какхотя ожидается кодЯ полагаю, что IB также должен предупредить вас, но, думаю, нет.