2010-06-08 113 views
3

以下是我在做什么:如何在iPhone中使用NSUserDefaults保存应用程序状态?

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

它工作吗?如果不是,为什么?你期望代码做什么,它究竟做了什么? – zoul 2010-06-08 06:21:30

回答

1

它看起来像你想一个UIViewController添加到userdefaults?我怀疑这会起作用。

我想你必须在那里放置一些标识符字符串或数字,告诉你当前显示的是哪个viewcontroller,当应用程序启动时基本检查该值并相应地设置你的viewcontrollers。

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