Używanie NSKeyedArchiver do przechowywania niestandardowego modelu danych
Pracuję nad czytnikiem rss. Jest to tylko widok tabeli, a każda komórka pokazuje niestandardowy model danych RSSEntry. I mam NSMutableArray allEntries, który zawiera wszystkie RSSEntry, które otrzymałem z serwera. Oto jak wygląda RSSEntry:
@interface RSSEntry : NSObject <NSCoding> {
NSString *_blogTitle;
NSString *_articleTitle;
NSString *_articleUrl;
NSDate *_articleDate;
}
Chcę przywrócić dane z archiwum lokalnego, więc po zamknięciu i ponownym otwarciu tej aplikacji widok tabeli jest wypełniany danymi po ostatnim odświeżeniu.
Przeczytałem przykład w „Rozpoczęcie programowania w iOS5”, ale przechowuję i odtwarzam tylko jeden model danych. Nie wiem więc, jak przechowywać tę zmienną tablicę pełną mojego niestandardowego modelu danych i przywrócić ją.
Używam następującego kodu do przechowywania i przywracania danych:
// STORE
NSMutableData *data = [[NSMutableData alloc] init];
NSKeyedArchiver *archiver = [[NSKeyedArchiver alloc] initForWritingWithMutableData:data];
[archiver encodeObject:entry forKey:kDataKey];
[archiver finishEncoding];
// RESTORE
NSData *data = [[NSMutableData alloc] initWithContentsOfFile:[self dataFilePath:kFilename]];
NSKeyedUnarchiver *unarchiver = [[NSKeyedUnarchiver alloc] initForReadingWithData:data];
RSSEntry *entries = [unarchiver decodeObjectForKey:kDataKey];
[unarchiver finishDecoding];
W ten sposób mogę przechowywać i przywracać tylko jeden model danych.
Kto może mi dać rękę. Jestem nowicjuszem w programowaniu na iOS, może to trochę nudne.