Verwenden von NSKeyedArchiver zum Speichern eines benutzerdefinierten Datenmodells

8

Ich arbeite an einem RSS-Reader. Es ist nur eine Tabellenansicht und jede Zelle zeigt ein benutzerdefiniertes Datenmodell RSSEntry. Und ich habe ein NSMutableArray allEntries, das alle RSSEntry enthält, die ich vom Server bekommen habe. So sieht RSSEntry aus:

%Vor%

Ich möchte Daten aus dem lokalen Archiv wiederherstellen. Wenn ich diese App also wieder beende und öffne, wird die Tabellenansicht bei der letzten Aktualisierung mit Daten gefüllt.

Ich habe ein Beispiel in "Beginn der iOS5-Programmierung" gelesen, aber es speichert und stellt nur ein Datenmodell wieder her. Ich weiß also nicht, wie ich dieses veränderbare Array mit meinem benutzerdefinierten Datenmodell speichern und wiederherstellen kann.

Ich verwende folgenden Code zum Speichern und Wiederherstellen von Daten:

%Vor%

Ich kann nur ein Datenmodell auf diese Weise speichern und wiederherstellen.

Wer kann mir helfen? Ich bin neu in iOS-Programmierung, vielleicht ist es ein wenig langweilig .sorry.

    
wyp 07.06.2012, 09:32
quelle

2 Antworten

14

Platzieren Sie alle Einträge, die Sie speichern möchten, in ein NSArray und verwenden Sie diesen Code:

%Vor%

Wo entries ist Ihr Array von Einträgen. Schön und einfach, nur eine Zeile Code.

Um die Archivierung aufzuheben, verwenden Sie einfach

%Vor%

NSKeyedArchiver kann beliebige, sogar sehr komplexe Datenstrukturen von Objective-C-Objekten archivieren, die das NSCoding -Protokoll implementieren , einschließlich verschachtelter NSArray s, NSDictionary s und benutzerdefinierte Objekte in eine Datei. NSKeyedUnarchiver führt den umgekehrten Vorgang aus. Dabei werden alle von NSKeyedArchiver erzeugten Daten verwendet und das ursprüngliche Objektdiagramm, das archiviert wurde, wiederhergestellt. Technisch könnten sie nur eine einzige Klasse sein, aber Apple entschied sich dafür, sie nach Funktionalität zu trennen, weil das grammatikalisch korrekter ist oder etwas:)

Ich nehme an, Sie können das resultierende NSData -Objekt in eine Datei schreiben und es wieder lesen.

    
Greg 07.06.2012, 11:20
quelle
3

Sie können ein NSDictionary wie folgt speichern

%Vor%     
Omar Abdelhafith 07.06.2012 09:39
quelle

Tags und Links