ios - 使用UserDefaults来存储不同用户的数据

标签 ios swift nsuserdefaults

我正在尝试在我的 iOS 应用程序中保存两个不同用户的数据。我确实设法使用这样的共享首选项在 Android 中保存两个或多个用户的登录和个人资料详细信息。

getSharedPreferences(字符串 FIRST_USER,int 模式) getSharedPreferences(字符串SECOND_USER,int模式) ...

通过这种方法,我只需检查当前用户的 userid 并在启动时加载 SharedPrefs 文件,然后从 current_users sharedPref 读取数据文件使用相同的KEY - VALUE 对。当用户切换时,只需加载不同的文件,一切都会改变。

我知道 UserDefaults 相当于 iOS 中的共享首选项,但我不知道是否 我可以使用不同的 SharedPrefs 文件执行类似于在 android 中执行的操作。

没有任何 iOS 编程经验。

感谢任何帮助。

最佳答案

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

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

关于ios - 使用UserDefaults来存储不同用户的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48317786/

相关文章:

ios - flutter 包的最低 iOS 部署版本

iphone - Phonegap 1.1/iOS5 插件未触发

ios - UIView.endEditing中的 "force"参数有什么作用?

swift - 单个 Collection View 的不同单元格外观

ios - 如何在 Swift 中打印 NSUserDefaults 内容

iphone - NSNumber 存储在 NSUserDefaults 中

ios - SDWebImage 成功加载处理程序返回错误的 UIImage

javascript - 将网页信息转换成pdf信息

ios - 使用滚动(手势)重新加载 CollectionView

swift - 如何从 Spotlight 索引和取消索引 NSUserActivities