Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.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
C# 模拟器中应用状态的测试保存_C#_Ios_Xamarin.ios - Fatal编程技术网

C# 模拟器中应用状态的测试保存

C# 模拟器中应用状态的测试保存,c#,ios,xamarin.ios,C#,Ios,Xamarin.ios,在iOS 5中测试应用程序状态的保存时,我遇到了一个问题:退出应用程序时,没有调用任何用于保存状态的重载 下面是我如何重载保存状态的方法: [Register("AppDelegate")] public class AppDelegate : UIApplicationDelegate { ... public override bool ShouldSaveApplicationState(UIApplication application, NSCo

在iOS 5中测试应用程序状态的保存时,我遇到了一个问题:退出应用程序时,没有调用任何用于保存状态的重载

下面是我如何重载保存状态的方法:

[Register("AppDelegate")]
public class AppDelegate : UIApplicationDelegate
{
    ...            
    public override bool ShouldSaveApplicationState(UIApplication application, NSCoder coder)
    {
        Data.Save(coder);
        return true;
    }

    public override void WillEncodeRestorableState(UIApplication application, NSCoder coder)
    {
        Data.Save(coder);
    }
以下是我退出应用程序时使用的方法,据我所知,每种方法都应该触发状态保留调用(但它们不会):

  • 按主页按钮
  • 调用
    UIApplication.SharedApplication.PerformSelector(新选择器(“terminateWithSuccess”),null,0f
  • 调用
    Environment.Exit(0)(这将导致应用程序挂起)
  • Info.plist
    中将
    UIApplicationExitsOnSuspend
    设置为true,然后按下模拟器中的home(主页)按钮
所以我的问题是:为什么保存状态的方法没有被调用

来自苹果文档:

请注意,系统会自动删除应用程序的保留内容 说明用户强制退出应用程序的时间。删除保留状态 应用程序被禁用时的信息是一项安全预防措施。(b)系统 如果应用程序在启动时崩溃,也会删除保留状态 类似的安全预防措施。)如果你想测试你的应用程序 恢复其状态时,不应使用多任务条终止 应用程序在调试过程中。相反,请使用Xcode终止应用程序或终止应用程序 通过将临时命令或手势安装到 按需呼叫退出

请尝试按Home按钮。

来自Apple文档:

请注意,系统会自动删除应用程序的保留内容 说明用户强制退出应用程序的时间。删除保留状态 应用程序被禁用时的信息是一项安全预防措施。(b)系统 如果应用程序在启动时崩溃,也会删除保留状态 类似的安全预防措施。)如果你想测试你的应用程序 恢复其状态时,不应使用多任务条终止 应用程序在调试过程中。相反,请使用Xcode终止应用程序或终止应用程序 通过将临时命令或手势安装到 按需呼叫退出

试着按Home(主页)按钮。

您在后面的问题中指出您正在使用iOS 5

苹果在iOS 6中增加了状态保存功能。早期的iOS版本不会调用您的覆盖。

您在后面的问题中指出您正在使用iOS 5


苹果在iOS 6中增加了状态保存功能。早期的iOS版本不会调用您的覆盖。

谢谢您的回复。对不起,我忘了说我试过按home(主页)按钮。我阅读了文档,它只是没有明确提到如何“通过调用按需退出以编程方式终止应用程序”。我尝试调用
环境。退出(0)
这是否错误?什么是正确的电话?谢谢你的回复。对不起,我忘了说我试过按home(主页)按钮。我阅读了文档,它只是没有明确提到如何“通过调用按需退出以编程方式终止应用程序”。我尝试调用
环境。退出(0)
这是否错误?什么是正确的选择?