Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在iPhone中使用NSUserDefaults保存应用程序状态?_Iphone_Nsuserdefaults - Fatal编程技术网

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

如何在iPhone中使用NSUserDefaults保存应用程序状态?,iphone,nsuserdefaults,Iphone,Nsuserdefaults,以下是我正在做的事情: - (void) applicationWillTerminate: (UIApplication*) application { NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; [defaults setObject:navigationController.viewControllers forKey:@"diabetesstate"]; } - (v

以下是我正在做的事情:

- (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];
    }
}

看起来您正在尝试将UIViewController添加到userdefaults?我怀疑那会起作用

我猜您必须在其中放入一些标识符字符串或数字,以告知当前显示的是哪个viewcontroller,并且当应用程序启动时,基本上检查该值并相应地设置viewcontroller


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

是否有效?若否,原因为何?你期望代码做什么,它真正做什么?