Iphone SDK селектор или абстрактный класс - PullRequest
0 голосов
/ 15 декабря 2009

Я занимаюсь разработкой специального вида контроллера для библиотеки компонентов iPhone.

У меня хорошо работает контроллер who view, но мне нужно изменить его так, чтобы он работал одним из двух способов:

Либо это абстрактный класс, который вы должны разделить на подклассы и предоставить реализацию для конкретного метода, который контроллер будет вызывать всякий раз, когда ему нужны его данные.

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

Я хотел бы знать, как я могу реализовать любой из них и что вы бы порекомендовали

1 Ответ

0 голосов
/ 15 декабря 2009

Стандартный способ сделать это в Objective-C и iPhone - через делегирование.

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

См. Ответ на этом SO вопросе для полного примера.

Также прочитайте Руководство по основам какао для получения информации о том, что такое делегаты и почему они используются в какао. Там также есть пример того, как создавать делегаты для ваших собственных пользовательских классов.

...