Ich bin relativ neu in der iOS-Entwicklung im Allgemeinen, aber ich kodiere diese App.NSCoding in Swift archiviert Daten nicht richtig?
Ich habe benutzerdefinierte Objekte "Semester", "Kurs" und "Zuordnungen". Semester enthalten Arrays von Kursen und Kurse enthalten Arrays von Zuordnungen. Ich kann die Semester- und Kursinformationen richtig archivieren, aber aus irgendeinem Grund können die Zuweisungsinformationen nicht gelesen werden.
Semester:
required init?(coder aDecoder: NSCoder) {
self.name = ""
super.init()
if let archivedName = aDecoder.decodeObject(forKey: "name") as? String {
name = archivedName
}
if let archivedCourses = aDecoder.decodeObject(forKey: "courses") as? [Course] {
courses = archivedCourses
}
}
func encode(with aCoder: NSCoder) {
aCoder.encode(name, forKey: "name")
aCoder.encode(courses, forKey: "courses")
}
Kurs:
required init?(coder aDecoder: NSCoder) {
self.name = ""
super.init()
if let archivedName = aDecoder.decodeObject(forKey: "courseName") as? String {
name = archivedName
}
if let archivedAssignments = aDecoder.decodeObject(forKey: "assignments") as? [Assignment] {
assignments = archivedAssignments
}
}
func encode(with aCoder: NSCoder) {
aCoder.encode(name, forKey: "courseName")
aCoder.encode(assignments, forKey: "assignments")
Aufgabe:
required init?(coder aDecoder: NSCoder) {
self.name = ""
self.grade = 0
self.weight = 0
super.init()
if let archivedName = aDecoder.decodeObject(forKey: "assignmentName") as? String, let archivedGrade = aDecoder.decodeObject(forKey: "assignmentGrade") as? Int, let archivedWeight = aDecoder.decodeObject(forKey: "assignmentWeight") as? Int {
name = archivedName
grade = archivedGrade
weight = archivedWeight
}
}
func encode(with aCoder: NSCoder) {
aCoder.encode(name, forKey: "assignmentName")
aCoder.encode(grade, forKey: "assignmentGrade")
aCoder.encode(weight, forKey: "assignmentWeight")
}
Ich bin mir nicht sicher, warum, aber die Zuordnungsdetails nicht gelesen werden kann, wenn ich versuche, dekodiere das Objekt.
decoderObject eine haben spezielle Methode zum Entschlüsseln von Ints –
Hat meine Antwort Ihnen geholfen? jedes Feedback ist zu schätzen, danke –
Ja, tat es! Danke für Ihre Hilfe!! –