В общем случае вы должны сохранять состояние близко ко времени его изменения. Если количество сохраняемого состояния очень мало, вы можете подождать, пока будет вызван делегат приложения -applicationWillResignActive: метод. Или вы можете зарегистрировать одно приложение в NSNotificationCenter, чтобы наблюдать UIApplicationWillResignActiveNotification. А затем сохраните.
Если ваш массив будет очень большим, вы можете сохранять его реже. Но вы также должны помнить о том, сколько времени может потребоваться для записи вашего массива на диск. В зависимости от обстоятельств, при которых ваше приложение перестает быть активным, у вас может не хватить времени для записи на диск.
Имеете ли вы хорошее представление о максимальном объеме данных, которые могут потребоваться для записи? Это ограничено или открыто?