ios - 注销时快速清除共享实例

标签 ios swift class

我有一个共享实例用户配置文件类,我将使用它来维护整个应用程序中的用户详细信息,现在注销时,我想清除此共享实例类中的所有数据。以下是我当前 class 的示例声明

class UserProfile: NSObject {
    static let sharedUserInstance =  UserProfile()
    var firstName: String?
    var lastName: String?
    var userType = UserType.student
    var email: String!
    var zipCode: String!
    var profileImage: UIImage = Constants.defaultProfilePic
    var hobbies: [String]?
    var userPreferences: UserPreferences?
}

我想一次清除共享实例中的所有变量。一种解决方法是声明一个清除函数,并为每个对象设置nil,例如:
func clear() {
firstName = nil
lastName = nil
so on...
}

有没有更好或更简单的方法可以做到这一点,以便使UserProfile.sharedUserInstance立即重置?

最佳答案

您可以为整个项目创建一个sigleton类,并将用户信息保存在该类中,并在注销时将nil分配给该对象

class Singleton {

private init() {}

static let shared = Singleton()

var userInfo:UserInfo?
}

在登录时,只需像这样从您的viewController分配用户信息对象即可
Singleton.shared.userInfo = your_object_to_save

并在注销时为其分配nil值
Singleton.shared.userInfo = nil

关于ios - 注销时快速清除共享实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58046932/

相关文章:

iphone - 自己的后端与 BaaS

C++ 访问 friend 类->成员->公共(public)方法?

c++ - 关于 C++ 类的问题(继承、变量作用域和函数)

c++ - 指向类成员函数的指针

ios - 为什么 TableView 显示在导航栏下方

ios - 当更新版本已在内存中时,强制核心数据从以前存储的版本刷新 NSManagedObject

ios - 如何快速获取 UITableView 中每个动态创建的行的文本值

swift - 使用 UISwitch 显示/隐藏表格 View 单元格

ios - 元组中的类型推断?

swift - 使用 tvOS 在 UIScrollView 中滚动