【问题标题】:How to save variables after application shut down?应用程序关闭后如何保存变量?
【发布时间】:2011-10-04 00:49:03
【问题描述】:

我想在应用程序关闭后保存一些整数并在应用程序打开后恢复它们,最简单的方法是什么?

【问题讨论】:

    标签: iphone xcode variables save application-shutdown


    【解决方案1】:

    您应该从 NSUserDefaults 存储和加载数据:

    http://developer.apple.com/library/IOS/#documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    // to store
    [defaults setObject:[NSNumber numberWithInt:12345] forKey:@"myKey"];
    [defaults synchronize];
    
    // to load
    NSNumber *aNumber = [defaults objectForKey:@"myKey"];
    NSInteger anInt = [aNumber intValue];
    

    【讨论】:

    • 哇,这比我预期的要容易得多。太棒了。
    【解决方案2】:

    查看NSUserDefaults documentation。您可以在那里设置任意键值对(只要您在应用终止之前的某个时间点调用共享用户默认对象的-synchronize)将在启动之间保持不变。

    【讨论】:

      【解决方案3】:

      您可以将它们保存在 NSUserDefaults 中。这主要用于偏好。

      [[NSUserDefaults standardUserDefaults] setObject:someInteger forKey:@"someIntegerKey"];
      [[NSUserDefaults standardUserDefaults] synchronize];
      

      如果您想要存储更多数据,也可以将它们保存到属性列表文件中。

      NSDictionary *someDictionary = [NSDictionary dictionaryWithObjectsAndKeys:someInt1, @"someIntKey1", someInt2, @"someIntKey2", nil];
      
      [someDictionary writeToFile:somePath error:&error];
      

      要在退出应用程序时保存任何代码

      - (void)applicationWillTerminate:(UIApplication *)application
      

      【讨论】:

        【解决方案4】:

        研究使用 NSUserDefaults。这就像一个可以添加键/值对的字典。您将变量保存在应用程序委托的 applicationWillTerminate 和 applicationDidEnterBackground 方法中。您在 applicationDidFinishLoading 中再次加载变量。

        【讨论】:

          【解决方案5】:

          最简单的方法是使用 NSUserDefaults。当应用程序即将关闭时,您的应用程序委托将收到-applicationWillTerminate: 消息,您可以将数据写入 NSUserDefaults(如果数据量很大,也可以将其写入您自己的文件)。然后,当您的应用再次启动时,您的应用委托将获得一个-applicationDidFinishLaunching,您可以再次读取数据。

          【讨论】:

            【解决方案6】:

            序列化它们并将它们存储在内存中。您必须在关闭之前执行此操作并在重新打开应用程序时加载

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2014-07-07
              • 2014-07-06
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2020-04-20
              相关资源
              最近更新 更多