2016-07-31 59 views
-1

In meinem Projekt muss ich ein benutzerdefiniertes Objekt (Person) mit einem UIImage, NSMutableArray und NSString Objekte speichern. Zur Zeit kann ich die NSString-Objekte kodieren und dekodieren und Person in NSUserDefault archivieren. Alles funktioniert gut außer UIImage und NSArray.Wie speichere ich ein benutzerdefiniertes Objekt in NSUserDefault, das UIImage und NSMutableArray enthält?

+0

Eigentlich ist das Speichern von UIImage nicht mein Anliegen. Ich möchte ein benutzerdefiniertes Objekt in NSUserDefault speichern. Tatsächlich habe ich es getan. Alle NSString-Eigenschaften verhalten sich wie erwartet, aber ich kann das Bild nicht abrufen, wenn ich das benutzerdefinierte Objekt entpacke. – Rokon

Antwort

0

Sie können bestimmte Arten von Objekten nur in NSUserDefaults speichern, dieselben Typen, die in PLIST-Dateien geschrieben werden können. (Siehe hier https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/PropertyLists/AboutPropertyLists/AboutPropertyLists.html) Sie können also dort kein Bild speichern. Der Grund dafür, dass Sie Probleme mit dem Array haben, ist, dass Sammlungen (Arrays/Wörterbücher) nur plist-kompatibel sind, wenn sie nur plist-kompatible Objekte enthalten. Ihre beste Vorgehensweise besteht darin, Ihre Bild-/Videodateien getrennt zu speichern und dann die URL (als String/NSString) in NSUserDefaults zu schreiben. Am besten