我想在iphone上存儲xml,其中包含由應用程序用戶選擇的多個收藏項。我正在使用TBXML(從prev dev繼承),因此這不能寫xml,我正在考慮把每個項目的xml作爲一個字符串一起切分,然後加載到像這樣:在NSUserDefaults上存儲對象數組的最佳方法是什麼
tbxml = [[TBXML alloc ] initWithXMLString:myXML]
這並不理想,但是對於這種方法有什麼限制/建議,以及什麼是存儲此文件的最佳位置?
非常感謝
編輯
用戶收藏在一個UITableView中的項目,這些然後可以稱爲「我的最愛」另一個UITableView的觀察。 UITableViewController顯示從服務器返回的xml文件中的內容。我試圖讓事情變得簡單,以便將每個'items'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的並保持每個項目的ID作爲數組
很容易訪問和更新,我做了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];
}
希望它可以幫助別人
我同意user697562。 +1在嘗試使用XML之前,您想先看看NSUserDefaults。 NSUserDefaults專爲您輕鬆存儲和檢索用戶選擇而設計。它會爲您節省大量時間和頭痛。 – dredful 2011-04-14 02:21:16
謝謝你們的答案。用戶最喜歡UITableView中的項目,然後可以在另一個名爲「我的收藏夾」的UITableView中查看這些項目。 UITableViewController顯示從服務器返回的xml文件中的內容。我試圖讓事情變得簡單,以便將每個'items'xml有效地附加到一個大字符串,然後將該字符串存儲在某處 - 無論是在文件中還是在NSUserDefaults中(我現在正在查看的地方) – craigk 2011-04-14 03:29:23
我不清楚爲什麼你會將它們全部附加到一個大字符串中。這些項目是否有獨特的名字?如果是這樣,請使用該名稱將每個單獨存儲在NSUserDefaults中(它基本上是一個自動保存自己的字典) – ax123man 2011-04-15 14:56:01