ios - 如何为 NSUserDefaults 指定名称

标签 ios objective-c cocoa-touch sharedpreferences nsuserdefaults

我需要在首选项中存储“user_session”和“game_deck”相关信息。

在我的应用程序中的某个时刻,我需要清除存储在“game_deck”中的所有数据,并且在注销时,我需要清除存储在“user_session”中的所有数据。

我通过指定首选项的文件名在 android 中实现了这个功能。

                SharedPreferences prefs = getSharedPreferences(
                        "user_session", Context.MODE_PRIVATE);
                Editor editor = prefs.edit();
                editor.clear();
                editor.commit();

                SharedPreferences prefs = getSharedPreferences(
                        "game_deck", Context.MODE_PRIVATE);
                Editor editor = prefs.edit();
                editor.clear();
                editor.commit();

当我为 iPhone 创建相同的项目时,如何在 Objective-C 中实现相同的功能?

我需要用

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

用于存储我的数据。但是我如何指定两个不同的默认值以便我可以清除特定默认文件中的所有变量?

提前致谢:)

最佳答案

NSUserDefault 与 Android 中的 SharedPreference 不同。这里有一个通用的 standardUserDefault 对象,您可以在其中保存所有数据。对于“user_session”和“game_deck”,没有单独的用户默认设置。

你可以做的是创建一个字典

NSMutableDictionary *userSessionDict = [[NSMutableDictionary alloc] init];
[userSessionDict setObject:@"someUsername"  forKey:@"username"];


NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[default setObject:userSessionDict forKey:@"user_session"];

//you can remove using
[default removeObjectForKey:@"user_session"];

关于ios - 如何为 NSUserDefaults 指定名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15151592/

相关文章:

iOS 如何在表格 View Controller 的单元格中加载图像

iOS 自定义单元格 - 重用标识符

ios - 使用多个 NSManagedObject

ios - 在 iOS 中以编程方式在标签栏上添加图像

objective-c - iOS/Objective C 上的科学计算库

iphone - 通过代码更改选定的 TabBarItem?

iphone - 进入编辑模式时动画自定义绘制的 UITableViewCell

ios - Xcode 5 Asset Catalog 是否向后兼容 iOS 7 之前的版本?

ios - UITextField 设置边框

iphone - 选择 info.plist 文件