Последовательная сериализация списка свойств
Сериализованный объект (serialized object) — это объект, преобразованный в поток байтов, чтобы его можно было сохранить в файле или передать по сети. Несмотря на то что любой объект можно сделать сериализованным, только определенные объекты можно поместить в такие классы коллекций, как NSDictionary или NSArray, а затем сохранить в списке свойств с помощью метода writeToFile:atomically: этого класса. Таким способом можно сериализовать объекты следующих классов Objective-C:
- NSArray;
- NSMutableArray;
- NSDictionary;
- NSMutableDictionary;
- NSData;
- NSMutableData;
- NSString; и NSMutableString;
- NSNumber;
- NSDate.
Если вы построите свою модель данных только из таких объектов, то для сохранения и загрузки своих данных сможете использовать списки свойств.
Если для сохранения своих данных вы собираетесь использовать списки свойств, выбирайте между классом NSArray и NSDictionary. Предположим, все объекты, которые вы помещаете в массив типа NSArray или NSDictionary, являются сериализованными объектами из приведенного выше списка, тогда вы можете написать список свойств, вызвав метод writeToFile:atomically: для экземпляра словаря или массива.
На всякий случай поясним: параметр atomically предписывает этому методу записывать данные во вспомогательный файл, а не в заданный. Если запись в этот файл выполнилась успешно, вспомогательный файл будет скопирован по адресу, заданному первым параметром. Это более безопасный способ записи данных в файл, поскольку в случае, если приложение аварийно завершится во время сохранения, существующий файл (если таковой был создан) не повредится. Конечно, такой подход увеличивает “непроизводительные расходы", но в большинстве ситуаций такая игра стоит свеч.
- Дата: 28-12-2014, 16:44