iPhone SDK - 加载/保存设置 [英] iPhone SDK - load/save settings

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

问题描述

我在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.

我们非常感谢任何帮助。

Any Help would be greatly appreciated.

- (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中,我错过了[prefs synchronize];

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

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

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