嵌套枚举可以保存在 UserDefaults 中吗?

Can a nested enum be saved inside UserDefaults?

假设我有以下枚举:

enum UserState {
    case LoggedIn(LoggedInState)
    case LoggedOut(LoggedOutState)
}

enum LoggedInState {
    case Playing
    case Paused
    case Stopped
}

enum LoggedOutState {
    case Unregistered
    case Registered
}

有没有办法将 UserState 保存到 UserDefaults

您可以使用 Codable protocol to transform your enum into a representation that can be saved in UserDefaults. This tutorial 可能会给您一个快速启动。