我需要在应用程序终止时存储应用程序的状态,以便当用户重新运行app时,App会从上次关闭的状态运行。它是某种恢复应用程序,但恢复方法在应用程序意外关闭时调用。但是每当用户意外关闭应用程序时,我需要手动关闭它。 我只需要存储App UI而不是应用程序的数据。 任何想法对我都有帮助。 感谢
答案 0 :(得分:3)
您可以使用以下任何可用方法保持状态:
<强>我。 NSUserDefaults
示例:
//saving
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setBool:YES forKey:@"testBool"];
//retrieving
[defaults boolForKey:@"testBool"];
<强> II。序列化状态对象。
<强> III。保存为plist文件
示例:
NSMutableDictionary *stateDictionary = [NSMutableDictionary dictionary];
//set state
...
//saving
[stateDictionary writeToFile:<filePath> atomically:YES];
//retrieve
stateDictionary = [NSMutableDictionary dictionaryWithContentsOfFile:<filePath>]
<强> IV。使用sqlite或Core-Data
(除非是,否则很可能不需要 你的应用程序的状态是某种对象关系模型)
<强>更新强>
为了保留窗口的UI状态,
查看此link并在标题用户界面保存下。
答案 1 :(得分:2)
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
{
//saveData
return NSTerminateNow;
}
如果您想保存NSWindow位置,可以使用[window saveFrameUsingName:@"myWindow"];
并使用
[window setFrameAutosaveName:@"myWindow"];
@应用启动。