在iPhone中如何使用NSUserDefaults保存应用程序状态?

3
以下是我正在做的事情:
- (void) applicationWillTerminate: (UIApplication*) application {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:navigationController.viewControllers
        forKey:@"diabetesstate"];
}

- (void) applicationDidFinishLaunching: (UIApplication*) application {
    NSMutableArray *state = [[NSUserDefaults standardUserDefaults] 
        objectForKey:@"diabetesstate"];
    if (state == nil) {
        //Will initialize a new controller and put it as root view controller
    }
    else {
        [navigationController setViewControllers:state animated:NO];
    }
}

它能工作吗?如果不能,为什么?你期望代码做什么,它实际上做了什么? - zoul
1个回答

1

看起来你正在尝试将一个UIViewController添加到userdefaults中?我怀疑这样做不会起作用。

我猜你需要在其中放置一些标识符字符串或数字,以告诉你当前显示的是哪个视图控制器,并且当应用程序启动时基本上检查该值并相应地设置你的视图控制器。

我需要为我的应用程序实现类似的功能。我有一个对象列表,当用户点击其中一个时,我会显示一个子对象。我的想法是,如果当前正在显示客户端对象,则存储其ID,否则为NULL。当应用程序启动时,我将检查该值。如果它是NULL,我将显示父对象列表,否则我将显示具有userdefaults中ID的子对象。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接