iOS сохранит пользовательский объект NSObject <MKAnnotation>

Я заинтересован в постоянном хранилище для пользовательского объекта аннотации

CustomAnnotation : NSObject <MKAnnotation>

который имеет следующие свойства

@property (nonatomic, assign) CGFloat val1;
@property (nonatomic, retain) NSString *val2;
@property (nonatomic, retain) NSDate *val3;
@property (nonatomic, retain) NSURL *val4;
@property (nonatomic, assign) double val5;
@property (nonatomic, assign) double val6;

Каков наилучший подход к хранению данных? Я думал об использовании NSUserDefaults, но мне нужно будет заархивировать свою CustomAnnotation в NSData? Как ты это делаешь?

Спасибо!

1 ответ

Решение

Если вы хотите сохранить пользовательский объект в NSUserDefaults у вас есть два варианта.

  1. Кодировать объект в NSData, используя NSKeyedArchiver
  2. Создать NSDictionary со всеми ценностями, которые вы хотите сохранить.

Используете ли NSUserDefaults Правильный подход зависит от нескольких факторов. Если у вас есть только один или несколько объектов, это будет хорошо. Если у вас много, то вы можете посмотреть на другие варианты. Возможно, plist или какой-то другой файл. В любом случае, у вас одна и та же проблема, необходимая для кодирования объекта с использованием одного из двух подходов.

Другие вопросы по тегам