сохранить массив значений cllocation в userdefaults iphone sdk - PullRequest
1 голос
/ 24 февраля 2011

привет, у меня есть массив значений cllocation, мне нужно сохранить этот массив в пользовательских ошибках ... как мне это сделать ...?
привет это где я добавляю объект в мой массив: [AM_locationMP.favArray addObject: [AM_locationMP.locationData objectAtIndex: AM_locationMP.indexno]];

где данные о местоположении - это массив значений меток местоположения.

где класс maplocationVO для метки MapLocationVO * currentMapLocation;

[AM_delegate.locationData addObject: currentMapLocation];

Ответы [ 3 ]

1 голос
/ 02 августа 2013

Почему люди пишут здесь, когда они явно не знают ответа или не понимают, что вы можете и не можете хранить в NSUserDefaults?

Класс NSUserDefaults предоставляет удобные методы для доступа к распространенным типам, таким какв виде чисел с плавающей точкой, двойных чисел, целых чисел, логических значений и URL-адресов.Объектом по умолчанию должен быть список свойств, то есть экземпляр (или для коллекций комбинация экземпляров): NSData, NSString, NSNumber, NSDate, NSArray или NSDictionary.Если вы хотите сохранить какой-либо другой тип объекта, вам обычно следует заархивировать его, чтобы создать экземпляр NSData.Для получения более подробной информации см. «Руководство по программированию предпочтений и настроек».- Из документации

Вам нужно использовать NSKeyedArchiver, чтобы превратить данные CLLocation в NSData.Затем используйте NSKeyedUnarchiver, чтобы превратить NSData обратно в данные CLLocation.

Следующая проблема, которую необходимо решить, - это когда вы архивируете объекты CLLocation и сохраняете их в UserDefaults, не разархивируйте должным образом.Единственным решением может быть сохранение их в файл.

0 голосов
/ 24 февраля 2011

используйте это

для установки массива

NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];

  [standardUserDefaults setObject:yourArray forKey:@"array"];
  [standardUserDefaults synchronize];

и для получения массива

NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults];

  [standardUserDefaults setObject:yourArray forKey:@"array"];

NSMutableArray *array=[standardUserDefaults objectForKey:@"array"];
0 голосов
/ 24 февраля 2011

этого должно быть достаточно, чтобы написать это:

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:yourArray forKey:@"clArray"];
[defaults synchronize];
...