In meiner App führe ich einige asynchrone Aufrufe aus, die mir einige Jsons zurückgeben. Ich analysieren diese Antworten und ich bevölkern einige structs, wie folgt aus:Benutzerdefiniertes Objekt in NSUserDefault speichern
public struct StudentInfo {
let availableExams : Int?
let course : String?
let courseLength : Int?
let department : String?
let enrolledExams : Int?
let name : String?
let surname : String?
let registrationDate : String?
let studentClass : String?
let studentId : String?
init?(json: JSON) {
self.availableExams = "availableExams" <~~ json
self.course = "course" <~~ json
self.courseLength = "courseLength" <~~ json
self.department = "department" <~~ json
self.enrolledExams = "enrolledExams" <~~ json
let auxName: String? = "name" <~~ json
self.name = auxName?.firstCharacterUpperCase()
let auxSurname: String? = "surname" <~~ json
self.surname = auxSurname?.firstCharacterUpperCase()
self.surname?.firstCharacterUpperCase()
self.registrationDate = "registrationDate" <~~ json
self.studentClass = "studentClass" <~~ json
self.studentId = "studentID" <~~ json
}
}
Ich möchte die NSUserDefault
verwenden, um diese Objekte zu speichern, um sie im Falle abzurufen, in denen keine Internetverbindung verfügbar ist auszuführen der API-Aufruf an den externen Web-Service. Ist dies eine praktikable Option, oder gibt es einfachere Möglichkeiten?
Verwenden Sie als Erstes 'NSUserDefaults' nicht als Datenbank. Zweitens, konvertieren Sie die Daten in eine JSON-Zeichenfolge und speichern Sie diese. – dasdom
schauen Sie in [NSKeyedArchiver/NSCoding] (http://shipster.com/nscoding/) – Fonix
ich Daten über eine Alamofire-Anfrage als Json abrufen; dann verwende ich Gloss, um den JSON in dieses struct-Objekt zu analysieren. Kann ich 'NSUserDefault' verwenden, um die JSON-Antwort von Alamofire vor der Analyse zu speichern? –