Это не сообщение «пожалуйста, помогите мне отладить мой код». У меня это действительно работает, но я хочу глубже понять, как это работает!
У меня есть приложение xCode на основе представления. В моем основном представлении у меня есть UITableView, и я установил для делегата и источника данных владельца файла.
В моем файле .h для Main ViewController в разделе @interface я объявляю NSMutableArray, который будет содержать список пользовательских объектов.
В объявлении @interface я включаю протоколы UITableViewDelegate и UITableViewDataSource.
Позже, после нескольких нажатий кнопок, мой код анализирует XML-файл с сервера и вставляет объекты в NSMutableArray. Я добавил код в функцию cellForRowAtIndexPath, которая вызывается так, как должна, и когда я вызываю метод reloadData для своего UITableView, таблица заполняется результатами, проанализированными из моего XML!
Довольно круто, но я хотел бы понять, как это происходит; лучшее понимание будет полезно для меня в будущем.
Я никогда явно не привязываю свой NSMutableArray к этому UITableView. Почему вызывается cellForRowAtIndexPath при добавлении объекта в массив? Как это связано? Это потому, что NSMutableArray объявлен в блоке @interface, в котором есть протоколы, о которых я упоминал выше? Если бы у меня было два UITableViews в моем .XIB, как бы код узнал, какой NSMutableArray должен быть сопоставлен с каким UITableView? (Или этого мне следует избегать?) Даже если у меня есть только UITableView в XIB, если у меня есть два NSMutableArray, нужно ли мне беспокоиться о том, что они каким-то образом запутывают мой UITableView?
Спасибо!