如何在可可中坚持应用状态

时间:2013-08-26 07:48:16

标签: objective-c cocoa persistent nswindowrestoration

我需要在应用程序终止时存储应用程序的状态,以便当用户重新运行app时,App会从上次关闭的状态运行。它是某种恢复应用程序,但恢复方法在应用程序意外关闭时调用。但是每当用户意外关闭应用程序时,我需要手动关闭它。 我只需要存储App UI而不是应用程序的数据。 任何想法对我都有帮助。 感谢

2 个答案:

答案 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"]; @应用启动。