Использование протоколов Objective C

У меня есть вопрос с домашним заданием, который меня очень сильно смутил. Ниже приводится краткое объяснение вопроса.

Представьте, что вы разрабатываете приложение, в котором хранится контактная информация. Адресная книга может содержать множество типов сущностей, например. Человек , компания или что-либо еще, у кого есть контактная информация.

  • Теперь вместо явной проверки каждого типа объекта напишите протокол , который объявляет, как объект должен вести себя и успешно отображаться в вашей адресной книге.

Я понимаю и стараюсь ответить на этот вопрос:

  1. Создать протокол, который будет иметь общие методы для каждого типа контактной информации в теге @required . И все другие методы, которые не похожи в разных контактах (например, номер факса связан с компанией, но не с человеком ...) в @optional.Во время выполнения вы можете проверить, отвечает ли объект любому заданному методу, используя селектор . Сомнение: Однако это снова явная косвенная проверка типа объекта, я прав?

  2. Вторая моя мысль - использовать что-то вроде абстрактного класса в java. Это означает, что класс, унаследованный от абстрактного класса, реализует свои собственные абстрактные методы. Как же я как наивный разработчик iOS не знаю, как это реализовать? и я не уверен, решит ли это мою проблему. Я хотел бы просветиться, если кто-то это знает.


Внешнее чтение выполнено. Сообщите мне, есть ли ответ, который я ищу, по одной из этих ссылок. Я прочитаю это еще раз, чтобы понять и решить эту проблему :). Благодарю.

  1. http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProtocols.html#//apple_ref/doc/uid/TP30001163-CH15-TPXREF144

  2. http: //developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocProtocols.html#//apple_ref/doc/uid/TP30001163-CH15-TPXREF146

  3. http://developer.apple .com / library / mac / # documentation / Cocoa / Conceptual / ObjectiveC / Chapters / ocProtocols.html # // apple_ref / doc / uid / TP30001163-CH15-TPXREF149

15
задан Bill the Lizard 18 September 2012 в 03:00
поделиться