Обычный (и хороший) совет заключается в том, что вам следует избегать сохранения состояния в поле зрения объектов. Такие атрибуты, как время, указанное в цели и текущей цели, должны быть частью вашей модели данных, а не привязываться к вашим представлениям. Для этого есть много веских причин, но в основном они сводятся к двум важным пунктам:
- Смешивание состояний с представлениями сделает вещи излишне сложными.
- Cocoa Touch разработан с расчетом на то, что приложения примут парадигму MVC.
В качестве примера первого пункта рассмотрим, что происходит, когда пользователь переключается с основного игрового экрана, чтобы изменить настройки, ответить на телефонный звонок и т. Д. На мой взгляд, у вас есть три варианта: а) сохранить все даже если они не отображаются, вы можете поддерживать состояние приложения; б) сохранить состояние из представлений перед выпуском представлений; в) запретить пользователю переходить из игры. Ни (а), ни (в) не кажутся хорошими идеями, и если вы выберете подход MVC, вы получите (б) бесплатно.
Вместо этого создайте модель данных, которая может представлять все аспекты вашей игры. Вы можете использовать стандартные классы, такие как NSDictionary и NSSet, или классы вашего собственного дизайна, такие как Football и Pitch, или (наиболее вероятно) комбинацию. Затем создайте игровой контроллер, который наблюдает за изменениями соответствующих объектов модели и вносит изменения в соответствующие представления.