Die Struktur ist ungefähr so. Klasse A enthält ein Array der Klasse B und Klasse B enthält eine Variable vom Aufzählungstyp C.
A wird wie in der Abbildung gezeigt initialisiert, mit der Ausnahme, dass das B-Array in Klasse A wurde jedoch nicht geändert, wenn s in B codiert wurde (Aufzählung C ist Status), der Wert von s kann gut ausgegeben werden, aber beim Codieren von (s) wurde ein Fehler gemeldet (ich habe Haltepunkte auf beiden gesetzt). Sätze ausdrucken und kodieren, und letzteres stürzte ab, sobald ich es verließ)
func encode(with aCoder: NSCoder) {
print(status)
aCoder.encode(status, forKey: "status")
}
Das Folgende sind einige Konsoleninformationen:
Normal
* App wird aufgrund der nicht erfassten Ausnahme „NSInvalidArgumentException“ beendet, Grund: „-[_SwiftValue encodeWithCoder:]: unbekannter Selektor an Instanz 0x608000444fb0 gesendet“
已经找到原因了,原因就是枚举类型直接编译会产生各种问题,曲线救国存读枚举的值就行了