соответствие и наследование в классах Какао / Objective-C - PullRequest
1 голос
/ 31 июля 2010

Я заметил, что классы Какао / Objective-C наследуются и соответствуют другим классам. Я понимаю, что такое наследование, но не соответствие. Какая разница?

Кроме того, является ли класс, подобный UIView, классом Какао или классом Objective-C?

Ответы [ 3 ]

2 голосов
/ 31 июля 2010

Классы не соответствуют классам, они соответствуют протоколам , которые в основном представляют собой списки сообщений, на которые может ответить класс.Если класс соответствует протоколу, он должен отвечать на все необязательные сообщения, перечисленные в интерфейсе протокола.

Кроме того, на самом деле нет разницы между классом Какао и классом Objective-C.Какао - это среда Objective-C, поэтому все его классы являются классами Objective-C.Если вы спрашиваете, являются ли такие классы, как UIView, частью языка или фреймворка: каждый класс, с которым вы обычно взаимодействуете в приложении Cocoa / Cocoa Touch, происходит из фреймворка.Собственные классы, которые обеспечивает стандартная среда выполнения Objective C:

  • Объект
  • Протокол
  • Список

Вы можете перейти к /usr / include / objc, если вы хотите увидеть заголовки для себя.Ни один из них не используется в обычной программе Touch Cocoa или Cocoa.Вы используете протоколы (как упомянуто выше), но обычно не ссылаетесь на класс напрямую.

1 голос
/ 31 июля 2010

Соответствие более или менее соответствует назначаемости. Но я никогда не видел, чтобы этот второй термин использовался для него.

Если вы можете присвоить объект переменной b, тогда a соответствует b.

1 голос
/ 31 июля 2010

Соответствие или более точное соответствие протоколу - это просто способ Objective C указать поведение, которое должен реализовать класс, подобно интерфейсу Java.

UIView является частью инфраструктуры UIKit, поэтому это класс Cocoa.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...