Протокол, делегат и источник данных на iOS - PullRequest
2 голосов
/ 01 марта 2012

Политика Model View Controller гласит, что представления не могут владеть данными, и делегат следует использовать для запроса данных из ViewController.

Но что насчет примера UILabel?Контроллер говорит напрямую с Outlet, например:

self.textfield.text = @ "Показать этот текст".(Здесь нет делегата? UILabel - тоже вид?)

Ответы [ 2 ]

2 голосов
/ 02 марта 2012

Делегирование было бы излишне сложным для чего-то простого, например, для установки текста в UILabel.

Примером разрушения MVC с помощью UILabel было бы использование его текстового свойства в качестве единственного хранилища для части данных, используемой в другом месте вашего приложения.Например, если приложение содержит имя человека и другую информацию, отображаемую с помощью UILabels, есть вероятность, что вы должны иметь класс Person как часть вашей модели и не использовать UILabels в качестве эксклюзивного хранилища для этой информации.

0 голосов
/ 02 марта 2012

Это в основном означает, что UILabel не должен изменять базовые данные, которые предоставляют текст для отображения.То же самое касается контроллера, который должен действовать только как мост от данных к представлению.

...