When I try to save an UIEvent-Object in NSUserDefaults
, the app crashed with an error if i assign a UIEvent
object.
Why? Is it possible to save an UIEvent
with NSUserDefaults
?
Here is my code:
extension UserDefaults {
// UIEvent
func event(forKey defaultName: String) -> UIEvent? {
var event: UIEvent?
if let eventData = data(forKey: defaultName) {
event = NSKeyedUnarchiver.unarchiveObject(with: eventData) as? UIEvent
}
return event
}
func setEvent(_ value: UIEvent?, forKey defaultName: String) {
var eventData: NSData?
if let event = value {
eventData = NSKeyedArchiver.archivedData(withRootObject: event) as NSData?
}
set(eventData, forKey: defaultName)
}
}
and in the "Foil"-Class exists an UIEvent
Property:
class Foil: NSObject, NSCoding {
var event: UIEvent? {
get {
return UserDefaults.standard.event(forKey: "Event")
}
set {
UserDefaults.standard.setEvent(newValue, forKey: "Event")
}
}
}