MVC и терминология собственности в Objective-C - PullRequest
1 голос
/ 03 декабря 2009

У меня проблема с терминологией, я думаю. Является ли ViewController частью контроллера MVC? Или это не одно и то же. Это объединяет VC MVC в один файл?

Свойства типа .backgroundColor и .size - это то же самое, что и @property и @synthesize, и если это так, это то же самое, что и атрибут? Значение могут ли свойства и атрибуты быть взаимозаменяемыми терминами в Objective-C или они разные? Например, .backgroundColor имеет синтаксис @properties в каком-то классе Какао или это неправильный взгляд на это?

Ответы [ 2 ]

4 голосов
/ 03 декабря 2009

Да. Класс Objective C с именем «ViewController» в названии является соглашением Apple, которое указывает, что он является частью части «Controller» согласно парадигме Model-View-Controller .

  • Модель: Ваш класс данных.
  • Вид: NSView, NSImageView и т. Д.
  • Контроллер: NSViewController класс.

    .backgroundColor и .size - оба свойства.

  • Ключевое слово @property является ключевым словом объявление для свойства.
  • Ключевое слово @synthesize требуется для создания экземпляра свойства.
1 голос
/ 03 декабря 2009

Ваш подкласс NSViewController определенно является контроллером в MVC. Он контролирует представление и помещает в него данные из ваших классов моделей.

Вы также правы относительно .backgroundColor и всех других свойств точечной нотации для встроенных классов Какао. Они определены с @property и @synthesize точно так же, как классы, которые вы бы написали. Однако , есть более простые классы (фактически, они являются структурами), используемые в Какао (такие как NSSize и NSRange). Когда вы получаете доступ к этим полям с точечной нотацией (например, range.length, предполагая, что range является NSRange), они не используют @property или @synthesize, поскольку они вообще не являются классами Objective-C, но простые структуры С.

Я лично использую «атрибут» и «свойство» одновременно в Objective-C, хотя другие разработчики могут не согласиться.

...