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

时间:2018-01-18 09:26:22

标签: ios swift nsuserdefaults

我试图在我的iOS应用中保存两个不同用户的数据。我确实设法使用像这样的Sharedpreferences来保存android中两个或更多用户的登录和个人资料详细信息。

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

有了这个approch,我将只检查当前用户的userid并在启动时加载SharedPrefs文件,然后使用相同的current_users sharedPref对从KEY - VALUE文件中读取数据。当用户切换时,只需加载不同的文件,一切都将被更改。

我知道UserDefaults相当于iOS中的sharedpref,但我不知道是否 我可以做类似于我在android中使用不同的SharedPrefs文件做的事情。

不具备iOS编程方面的丰富经验。

感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

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)
}

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