Ich denke, Sie haben nicht codieren und dekodieren Methode in Ihrer Sitzung Klasse. Wenn Ihre Sitzung benutzerdefinierte Klasse ist, sollten Sie die folgenden zwei Methoden schreiben, ohne dass das Archiv nicht funktioniert.
Code:
Objective C Version:
- (void)encodeWithCoder:(NSCoder *)encoder {
[encoder encodeObject:self.session_property1 forKey:@"session_property1"];
[encoder encodeObject:self.session_property2 forKey:@"session_property2"];
}
- (id)initWithCoder:(NSCoder *)decoder {
if((self = [super init])) {
//decode properties, other class vars
self.ession_property1 = [decoder decodeObjectForKey:@"ession_property1"];
self.ession_property2 = [decoder decodeObjectForKey:@"ession_property2"];
}
return self;
}
Hier session_property1 und session_property2 werden als String betrachtet, wenn Ihre Variable als Zeichenfolge andere ist, müssen Sie es entsprechend zu formatieren.
Nachdem diese in Ihren Schnitt auf Klasse, wird, wenn Sie archiveData
Methode verwenden, wie Sie getan haben, dann werden die Daten archivieren und dann können Sie diese Daten an NSUserDefault
Swift Version gesetzt:
required init(coder decoder: NSCoder) {
self.state = decoder.decodeObject(forKey: "state") as? String
self.country = decoder.decodeObject(forKey: "country") as? String
self.zip = decoder.decodeObject(forKey: "zip") as? String
self.locality = decoder.decodeObject(forKey: "locality") as? String
self.city = decoder.decodeObject(forKey: "city") as? String
self.latitude = decoder.decodeObject(forKey: "latitude") as? Double
self.longitude = decoder.decodeObject(forKey: "longitude") as? Double
}
func encode(with coder: NSCoder) {
coder.encode(state, forKey: "state")
coder.encode(country, forKey: "country")
coder.encode(zip, forKey: "zip")
coder.encode(locality, forKey: "locality")
coder.encode(city, forKey: "city")
coder.encode(latitude, forKey: "latitude")
coder.encode(longitude, forKey: "longitude")
}
Ich hoffe, es wird Ihnen helfen. Glücklich Codierung ...
Was ist 'session'? – Aaron
NSUserDefaults unterstützt die folgenden Datentypen: NSString, NSNumber, NSDate, NSArray, NSDictionary und NSData http://stackoverflow.com/questions/37980432/swift-3-saving-and-retrieving-custom-object-from-userdefaults – Rivendell