Вызов метода подкласса из суперкласса в Objective C - PullRequest
0 голосов
/ 04 ноября 2011

Мой оригинальный вопрос с идентификатором здесь .

На самом деле мне нужно больше разъяснений по этой проблеме.

Рассмотрим следующий сценарий:

Есть тризанятия в моем проекте.Скажите A, B & C.

У этих 3 классов есть несколько общих методов.Поэтому я создал еще один класс (Say D), в который я добавил эти распространенные методы.

Теперь класс D является родительским классом, а классы A, B и C являются дочерними классами.То есть класс A, B & C наследует свойства D.

У меня есть три UIButton для каждого дочернего класса.Каждая кнопка в каждом подклассе имеет некоторое действие.Но свойства кнопки, такие как цвет, рамка, изображение, одинаковы во всех трех классах.

Итак, мне нужно сделать следующие вещи для кнопок в каждом подклассе:

  • initкнопки
  • выделяют их
  • устанавливают кадр
  • устанавливают цвет
  • устанавливают действие (используя [button addTarget:self action:@selector(touchUpInsideAction:) forControlEvents:UIControlEventTouchUpInside])
  • и т. д.

За исключением "set action", все одинаково во всех дочерних классах (класс A, B и C)

Теперь мой вопрос: могу ли я создать кнопку, ее свойства и действие вКласс D (Родительский класс) и Могу ли я написать реализацию метода действия (touchUpInsideAction:) в каждом дочернем классе (Класс A, B и C)?

Так, чтобы я мог уменьшить свой повторный код в своем проекте,Здесь я вызову метод дочернего класса touchUpInsideAction: из родительского класса.

Это правильный путь или я должен написать создание кнопки и свойства для каждого класса отдельно?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 04 ноября 2011

Создание метода класса в классе D. Установите все свойства кнопок в этом методе.Вызовите метод класса из дочернего класса, скажем A. Метод класса вернет объект типа UIButton.Назначьте селектор, а затем добавьте этот объект в представление.

0 голосов
/ 04 ноября 2011

Поскольку в классе My Understanding D должна быть кнопка с настройкой всех общих свойств и методов действий. , И дочерний класс должен нести ответственность за обработку Action, если вам нужны разные функциональные возможности для каждого класса.

Предположим, что вы добавили цель self и селектор к кнопке в классе ужина. Вы создали объект A, B или C. Цель для кнопки в классе ужина (D) - self. Self - это представление объекта. Таким образом, self относится к объекту класса A, или B, или c.

...