В настоящее время я использую экземпляры singleton для доступа и поддержки различных NSObject
в приложении. Например, у меня есть:Как поддерживать объекты между сеансами приложений?
VariableStores, которые поддерживают несколько объектов, таких как CurrentUser (пользовательские
NSObject
), lastLocation (CLLocation
) и т.д.TaskManager, содержащих
NSMutableArray
изNSOperations
, которые потерпели неудачу для повторного выполнения позже (например, Instagram с неудачной загрузкой).
Если я убить приложение, одноэлементные экземпляры были уничтожены и: - некоторые данные должны быть получены на стороне сервера (например, CurrentUser), которые увеличивают продолжительность длины - некоторые данные наклоняют извлеченную из на стороне сервера, например NSOperation
в TaskManager (поскольку они управляются только локально)
Таким образом, я хотел бы продолжить работу с такими объектами, даже если приложение полностью уничтожено.
Что следует считать хорошей практикой? Сериализовать объект в NSUserDefaults
и десериализовать? Есть ли другие передовые методы?
В случае сериализации сериализуемые объекты в -applicationWillTerminate
делегировать и десериализовать их в соответствующих методах -единения одиночных элементов (которые создаются в appDidFinishLaunching
) можно считать приемлемыми?
Hi Mohamed, NSUserDefaults довольно медленный, но, как это только при запуске приложения, я думаю, что его можно терпеть. Я был с NSUserDefault и сериализовался для кодирования пользовательских объектов, и похоже, что он отлично работает на данный момент. Спасибо за отзыв :) –
отлично не стесняйтесь продвигать мой ответ, если почувствовали, что это вам помогло :) –