代码之家  ›  专栏  ›  技术社区  ›  Joe

使用UserDefaults存储不同用户的数据

  •  1
  • Joe  · 技术社区  · 6 年前

    我正在尝试在iOS应用程序中保存两个不同用户的数据。我确实使用这样的SharedReferences在android中保存了两个或更多用户的登录和配置文件详细信息。

    getSharedPreferences (String FIRST_USER, int mode) getSharedPreferences (String SECOND_USER, int mode) ...

    通过这种方法,我只需检查 userid SharedPrefs 文件,然后从中读取数据 current_users sharedPref 使用相同的 KEY - VALUE 对。当用户切换时,只需加载不同的文件,所有内容都将更改。

    我知道UserDefaults相当于iOS中的SharedPref,但我不知道 我可以用不同的SharedPrefs文件做一些类似于我在android中所做的事情。

    在iOS编程方面没有很高的经验。

    非常感谢您的帮助。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Shezad    6 年前

    1、使用以下方法获取保存数据的路径:

    func filePath(key:String) -> String {
        let manager = FileManager.default
        let url = manager.urls(for: .documentDirectory, in: .userDomainMask).first
        return (url!.appendingPathComponent(key).path)
    }
    

    2、使用以下代码存储数据:

    NSKeyedArchiver.archiveRootObject(data, toFile: filePath(key: "anyKey"))
    

    3、使用以下代码获取您保存的数据:

    if let data = NSKeyedUnarchiver.unarchiveObject(withFile:filePath(key:"anyKey")) {
           //here you will get your data
           print(data)
    }
    

    注意:此处使用与存储数据相同的密钥