2016-07-15 6 views
0

Ich habe einen struct-Datentyp erstellt. Wie untenSwift iOS Wie wird ein benutzerdefiniertes Objekt lokal gespeichert?

struct MyType { 
var a:String 
var b:String 
} 

Danach habe ich JSON-Daten erhalten (verwenden Alamofire) von meinem Server und analysieren (von SwiftyJSON zu widersprechen. Nun würde Ich mag lokal mein analysierte Objekt speichern. Ich habe Haneke Bibliothek versucht, aber es war kompliziert.Könnten Sie mir einen Weg, es zu tun, vielen Dank.

+0

Wenn Ihre Anforderung nach Datenspeicherung nicht kompliziert ist, einfach die Daten in JSON transformieren und speichern. – childrenOurFuture

+0

für einfache Daten, kann es in 'nsunderdefault' speichern, aber wenn die Liste der Datensätze besser coredata oder realm – xmhafiz

Antwort

0

-Wenn Sie die Informationen speichern möchten, selbst nachdem Sie die App zu töten: Dann speichern Sie die JSON-Zeichenfolge in NSUserDefaults.Wenn Sie brauchen Holen Sie es einfach von NSUserDefaults zurück und konvertieren Sie es in Ihr Model Class/Struct.

  • Wenn Sie möchten, dass die Informationen nur gespeichert werden, bis die Anwendung aktiv ist: Erstellen Sie eine benutzerdefinierte Sitzungsklasse, und speichern Sie das Modell dort. In diesem Fall müssen Sie das Modell bei jedem Öffnen der App festlegen.

Manchmal setze ich Daten in AppDelegate-Klasse.

0

Ich denke, dass Sie strukturierte Daten (Objekte) lokal speichern möchten. Objekte in Rohdaten zu archivieren und als Datei zu speichern, würde Ihren Anforderungen entsprechen. Sehen Sie sich die offical guide zum Serialisieren von Objekten an.

1

Für diese Art von Operation ist der beste Weg, es zu tun, CoreData oder Realm zu verwenden. In diesem Fall können Sie Ihr eigenes Objekt erstellen und in der Datenbank speichern. In Realm dauert es ca. 1 Minute, um es zu tun. Es sieht wie folgt aus:

class MyType: Object { 
    dynamic var a: String? 
    dynamic var b: String? 
} 

dann zum Beispiel in ViewController können Sie dieses Objekt speichern diesen Code aufrufen:

let realm = try! Realm() 
try! realm.write{ 
    realm.add(MyType) 
} 

, das ist alles. Simpel und einfach.

+0

verwenden Ich habe Realm ausgiebig verwendet. Realm vor CoreData als Implementierung ist für Realm im Gegensatz zu CoreData sehr schnell und einfach. – weePee

Verwandte Themen