在iOS中加载/保存设置 [英] load/save settings in iOS

查看:68
本文介绍了在iOS中加载/保存设置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在AppDelegate中定义了以下两个过程. saveSettings和loadSettings.我要在AppDidFinishLaunching方法中调用loadSettings过程,并在单击保存按钮后在设置视图中调用saveSettings过程.

I have the following two procedures defined in my AppDelegate. saveSettings and loadSettings. I am calling my loadSettings procedure in the AppDidFinishLaunching method, and I am calling the saveSettings procedure in my settings view, once the save button is clicked.

这两个方法似乎在正确的时间,正确的次数(一次)并使用正确的数据被调用.我的设置对象获得了正确的数据,但该数据似乎并未真正保存.当我运行加载代码时,我得到的变量将返回为空(而不是nil).

Both methods seem to be called at the right time, the right number of times (once), and using the correct data. my settings object gets the right data, but the data does not seem to be actually saving. When I run the load code, my resulting variables are coming back empty (not nil).

我尝试将相同的加载代码放在不同的视图中,但效果很好,但是由于某些原因,我的appDelegate没有得到结果.

I tried putting the same loading code in a different view and it works fine, but for some reason, I am not getting results in my appDelegate.

- (void)applicationDidFinishLaunching:(UIApplication *)application {    
    [window addSubview:navigationController.view];
    [window makeKeyAndVisible];
    [self loadSettings];
    [self setDefaults];
}

-(void)loadSettings{
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    settings.masterLocation = [prefs objectForKey:@"masterLocation"];
    settings.masterPort = [prefs objectForKey:@"masterPort"];
    settings.userName = [prefs objectForKey:@"userName"];
    settings.passWord = [prefs objectForKey:@"passWord"];
    settings.autoLogin=[prefs objectForKey:@"autoLogin"];

    if (settings.autoLogin == nil)
        settings.autoLogin=@"N";
}

-(void)saveSettings:(SharedData *)d{
    settings=d;

    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    [prefs setObject:settings.masterLocation forKey:@"masterLocation"];
    [prefs setObject:settings.masterPort forKey:@"masterPort"];
    [prefs setObject:settings.userName forKey:@"userName"];
    [prefs setObject:settings.passWord forKey:@"passWord"];
    [prefs setObject:settings.autoLogin forKey:@"autoLogin"];   
}

推荐答案

Doh.

在saveSettings中,我没有我的[偏好设置同步];

In saveSettings, I was missing my [prefs synchronize];

这篇关于在iOS中加载/保存设置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆