我需要在首选项中存储“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。这里有一个 public 的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"];

10-07 19:17
查看更多