До сих пор я использовал NSUserDefaults
, чтобы сохранить мой NSMutableDictionaries
, но теперь я хочу сохранить словарь, который будет выглядеть следующим образом: он будет содержать разные объекты с ключами: модель автомобиля. Класс Car
будет иметь словарь основных характеристик и словаря Person
объектов (которые используют автомобиль). Каждый класс Person
будет иметь личную информацию как свойства. Я могу сделать все остальное, но не сохранить первый NSMutableDictionary
, который будет хранить всю эту информацию. (Словари должны содержать только ошибку, не относящуюся к свойствам). Каков подходящий способ ее сохранения?iOS Как сохранить словарь объектов класса?
1
A
ответ
2
Вы должны использовать архиватор, такой как NSKeyedArchiver, для сериализации/десериализации объектов в архив NSData.
Все объекты в графе
- автомобилей
- Person
- Все свойства этих объектов не является оценочным объект (т.е. не NSString, NSDate, NSArray, NSNumber, ...)
должен принять протокол NSCoding. Для этого вы используете:
-(id)initWithCoder:(NSCoder *)coder
{
// Tell the unarchiver how to read your object properties from the archive
_oneObjectProperty = [coder decodeObjectForKey:@"propertyKey"];
.....
}
-(void)encodeWithCoder:(NSCoder *)coder
{
// Tell the archiver how to serialise your object properties
[coder encodeObject:_oneObjectProperty ForKey:@"propertyKey"];
....
}
Вы найдете пример кода здесь: Why NSUserDefaults failed to save NSMutableDictionary in iPhone SDK?
0
Вы можете использовать NSKeyedArchiver
для сохранения объектов и NSKeyUnarchiver
для их извлечения.
Спасибо большое :) Это работало отлично для меня. – vejmartin