Я пытаюсь, чтобы моя игра сохранялась в текущем состоянии и перезагружала ее, когда пользователь выходит или перезапускает игру. Однако я борюсь с тем, как на самом деле получить доступ к объектам в нужное время. Вот псевдокод для того, что мне нужно, я просто не могу получить доступ к правильным объектам, я делаю это назад или это правильный способ сделать это?Сохранение и загрузка данных, когда приложение вводит/оставляет фон
Чтобы повторить, моя проблема здесь заключается в получении доступа к правильному ViewControllers
, чтобы сохранить/загрузить данные с диска.
Моя навигация иерархия проста, ViewController > GameViewController
(показано модально)
-(void)applicationDidEnterBackground:(UIApplication *)application
{
// Save current state to disk
// See if GameViewController (or GameView) is top controller (aka game in progress)
// If so then use NSKeyedArchiver to persist to disk
}
-(void)applicationDidBecomeActive:(UIApplication *)application
{
// Load current state from disk
// Use NSKeyedArchiver to load data from disk, if game is in progress then
// Find mainViewController, then show the game modal on top of it
// then populate the game data with the data from disk
}
Бонус вопрос: Являются ли эти две функции правильными, чтобы делать свою сохранение/загрузка в?
Почему у вас нет только одного объекта viewController в вашем делете приложения? – Woodstock
Как я могу это достичь? – Chris
в файле заголовка для вашего делегата приложения (там, где указанными выше методы были бы) declare @property UIViewController * yourController; то вы можете получить доступ к своим VC по мере необходимости, и у вас всегда есть ссылка ... – Woodstock