Я пытаюсь сохранить enum в UserDefaults
, но не могу сделать это успешно, потому что в do try catch я получаю ошибку. Я понял, что это связано с моим enum, потому что когда я удаляю enum в моем классе, он работает как обычно.
class User: NSObject, NSCoding {
private(set) public var loginType: LoginType
// some other properties
init(name: String, username: String, email: String, profileImage: UIImage?) {
// some other inits
self.loginType = .email
}
init(name: String, username: String, telephoneNumber: String, profileImage: UIImage?) {
// some other inits
self.loginType = .telephoneNumber
}
func encode(with aCoder: NSCoder) {
aCoder.encode(self.loginType, forKey: LOGIN_TYPE_KEY)
}
required init?(coder aDecoder: NSCoder) {
self.loginType = aDecoder.decodeObject(forKey: LOGIN_TYPE_KEY) as! LoginType
}
}
вот мое перечисление:
enum LoginType: String {
case email = "email"
case telephoneNumber = "telephoneNumber"
}