Каков наилучший метод для хранения массива объектов на NSUserDefaults - PullRequest
0 голосов
/ 14 апреля 2011

Я хочу хранить xml на iphone, который состоит из нескольких избранных элементов, выбранных пользователем приложения. Я использую TBXML (унаследованный от prev dev), и поэтому я не могу написать xml, я думал о том, чтобы собрать вместе xml из каждого элемента в виде строки и затем загрузить его следующим образом:

tbxml = [[TBXML alloc] initWithXMLString: myXML]

Это не идеально, но есть ли ограничения / рекомендации для этого метода, и как лучше всего хранить этот файл?

Большое спасибо

редактировать

Пользователь добавляет элемент в UITableView, затем его можно просмотреть в другом UITableView, который называется «My Favorites». UITableViewController отображает содержимое из файла XML, возвращенного с сервера. Я пытался упростить для меня задачу эффективного добавления каждого элемента «xml» в большую строку, а затем сохранить эту строку где-нибудь - либо в файле, либо в NSUserDefaults

в идеале я мог бы сохранить массив объектов, поскольку они добавляются в избранное для последующего чтения.

объекты созданы так

@interface Playlist : NSObject {

NSURL *imagePath;
NSString *title;
NSString *subTitle;
NSString *mediaType;
NSString *artistName;
NSString *id;

}


@property (nonatomic, retain) NSURL *imagePath;
@property (nonatomic, retain) NSString *title;
@property (nonatomic, retain) NSString *subTitle;
@property (nonatomic, retain) NSString *mediaType;
@property (nonatomic, retain) NSString *artistName;
@property (nonatomic, retain) NSString *id;

@end

есть ли способ сохранить массив объектов, подобный приведенному выше, в NSUserDefaults?

спасибо

РЕДАКТИРОВАТЬ 2 Я пошел с NSUserDefaults и сохранил идентификатор для каждого элемента в виде массива

очень легко получить доступ и обновить, я создал класс PlaylistDataController с такими методами, как этот, чтобы добавить элемент в мой 'MyPlaylistArray' в пользовательских значениях по умолчанию

-(void) addItemToPlaylist: (NSString*) myID
{
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSMutableArray *myPlaylistArray = [NSMutableArray arrayWithArray:[defaults objectForKey:@"MyPlaylistArray"]];
    [myPlaylistArray addObject:myID];
    [defaults setObject:myPlaylistArray forKey:@"MyPlaylistArray"];
    [defaults synchronize];

}

Надеюсь, это кому-нибудь поможет

1 Ответ

1 голос
/ 14 апреля 2011

Я не могу судить по предоставленной вами информации, но «избранные пользователем элементы» звучат как NSUserDefaults, что было бы намного проще, чем xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...