Я пытаюсь решить одну архитектурную проблему, но я хочу найти подходящий подход.Как уведомить родительский класс от ребенка?
У меня есть игровая сцена GameLayer.h, которая является моей точкой зрения в этом случае. У меня также класс GameEngine, который я пытаюсь быть контроллером. У меня есть свой пользовательский класс Egg, полученный из CCNode и некоторая таймерная логика, реализованная по расписанию в классе Egg. У меня есть много объектов Egg на игровой сцене, добавленной с помощью метода addChild. Так GameEngine.m импортирует GameLayer.h и GameLayer.m импортирует Egg.h
После таймера в каждом Egg работает, я хочу получать уведомления, то есть выполнить некоторые действия, увеличить счет и т.д. Вопрос, что лучший способ реализации такой ситуации. Кроме того, я хочу подчиняться правилу MVC Быстрые решения, которые приходит на мой взгляд, являются
- Включите Gamelayer.h в классе Egg и вызвать некоторый метод обновления в этом. Обновите представление (self) и сообщите GameEngine, чтобы сохранить новый балл.
- Включите Gamelayer.h в класс Egg и вызовите в нем некоторый метод обновления. В методе обновления вызовите другой метод обновления, который теперь находится в GameEngine.h, а теперь из GameEngine save score и обновите Gamelayer (вид)
- Внедрите KVO. Проблема заключается в том, что я никогда не делал это раньше, я не знаю, наблюдатель должен быть GameLayer или GameEngine
Пожалуйста, помогите, любые примеры оценены
Вы лучше всего, вероятно, номер 3. Все, что действует в отношении информации, должно соблюдаться. Просто не забудьте отменить регистрацию наблюдателя, когда закончите. – dqhendricks