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? Как ты это делаешь?

Спасибо!


person Rohan Agarwal    schedule 18.03.2013    source источник


Ответы (1)


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

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

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

person rmaddy    schedule 18.03.2013