如何保存iPhone应用程序的用户首选项?

kum*_*eer 1 iphone settings xcode objective-c

我正在构建一个应用程序,需要在打开应用程序之前输入访问凭据(组织代码,访问代码).当用户第一次输入访问权限时,我们需要保存首选项.当用户再次打开应用程序时,他自动需要继续使用应用程序,但不能使用访问凭据.

我在这里构建代码

log cat中没有错误,但不保存首选项.我需要在用户打开应用程序时保存首选项并加载.我在代码中做错了吗?

Meh*_*tri 5

这个常见的功能是将您的数据添加到NSUserDefaults ..看看这是类函数,所以你必须使用你的类名称来调用它.将它写在你的AppDelegate实现文件中.

+(void)addToNSUserDefaults:(id)pObject forKey:(NSString*)pForKey
{
    NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
    [defaults setObject:pObject forKey:pForKey];
    [defaults synchronize]; 
}
Run Code Online (Sandbox Code Playgroud)

这是从NSUserDefaults获取数据..

+(id)getFromNSUserDefaults:(NSString*)pForKey
{
    id pReturnObject;
    NSUserDefaults *defaults =[NSUserDefaults standardUserDefaults];
    pReturnObject = [defaults valueForKey:pForKey];
    return pReturnObject;
}
Run Code Online (Sandbox Code Playgroud)

当你启动应用程序时,只需在这个AppDelegate方法中检查一下,

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 
{
    NSString *strtmp = [AppDelegate getFromNSUserDefaults:YOUR_KEY];

    if(strtmp == nil)
    {
        //User have to enter data to save in User Defaults
    }
    else
    {
        //Application Starts without entering Code, as you have it in your UserDefaults
    }
}
Run Code Online (Sandbox Code Playgroud)