Где лучше хранить экземпляр объекта источника данных в представлении таблицы?

Я хотел бы иметь отдельный класс, который соответствует протоколу UITableViewDataSource и работает с объектами данных. Где лучше сохранить, выделить и инициализировать экземпляр этого класса? Если я это сделаю в ViewDidLoad подкласса Control View Table, который подключен к Storyboard, экземпляр источника данных освобождается после завершения метода ViewDidLoad .

 - (void)viewDidLoad { [super viewDidLoad]; MyTableViewDataSource* myDataSource = [[MyTableViewDataSource alloc] init]; self.tableView.dataSource = myDataSource; } // self.tableView.dataSource is deallocated 

Будет ли лучшим решением создать сильное свойство объекта источника данных в подклассе Control View Table, связанного с раскадрой, а затем выделить и инициализировать экземпляр источника данных в ViewDidLoad ?

 @interface MyTableVC : UITableViewController @property (strong, nonatomic) MyTableViewDataSource *myDataSource; @end - (void)viewDidLoad { [super viewDidLoad]; self.myDataSource = [[MyTableViewDataSource alloc] init]; self.tableView.dataSource = myDataSource; } 

Причина, по которой он отменяется, заключается в том, что UITableView не сохраняет его:

 @property(nonatomic, assign) id< UITableViewDataSource > dataSource ^^^^^^ 

Это нормально с делегатами, чтобы избежать сохранения циклов.

Поэтому, если вы хотите создать новый объект для работы в качестве источника данных, вам нужно будет сохранить его в соответствии с вашим вторым фрагментом кода.