У меня есть некоторые структуры данных в моем приложении, которые мне нужно сохранить после получения уведомления didReceiveMemoryWarning. Данные представляют собой текущий журнал всех действий, которые пользователь выполнил с приложением (которое является игрой).
Данные, которые у меня есть, могут быть небольшими (возможно> несколько сотен КБ), поэтому списки не кажутся правильным решением.
Первая из двух возможностей — это архивирование объектов и обеспечение поддержки этими объектами протокола NSCoding. Я не уверен, что это правильный путь.
Второй вариант, похоже, с CoreData, с использованием NSManagedObjectModel и NSPersistentStoreCoordinator. Это хороший способ хранить эти объекты? Или это перебор? (Я использую пример приложения «Рецепты» от Apple для справки).
Мои объекты представляют собой настраиваемые типы объектов, которые в конечном итоге содержат NSString, NSNumber, NSInteger и другие простые типы.
Пример некоторых типов данных, которые у меня есть:
// this the base object I need to start with to persist
@interface MyDataObject : NSObject
{
MyScore *aScore;
// Contains an object of type 'MyAction'
NSMutableArray *allActions;
}
@interface MyScore : NSObject
{
NSInteger currentScore;
NSDate lastUpdated;
}
@interface MyAction
{
NSNumber *actionId;
NSString *description
MyUser *associatedUser;
}
@interface MyUser
{
NSNumber *id;
NSString *name;
NSString *email;
}
Пользователь может играть в кучу разных игр, и для каждой игры у меня есть журнал активности, в котором указаны сделанные им ходы. Пользователь может видеть сделанные до сих пор ходы в каждой игре во время игры, а также может переключаться между активными и неактивными играми, чтобы просматривать прошлые ходы.