2

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

4

2 回答 2

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 或核心数据

(除非您的应用程序的状态处于某种对象关系模型中,否则很可能不需要)

更新:
为了保留窗口的 UI 状态,请检查此链接并在标题 USER INTERFACE PRRESERVATION下。

于 2013-08-26T08:43:37.763 回答
2
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
{
    //saveData
    return NSTerminateNow;
}

如果要保存 NSWindow 位置,可以使用 [window saveFrameUsingName:@"myWindow"];
并使用
[window setFrameAutosaveName:@"myWindow"];@应用启动。

于 2013-08-26T07:50:26.147 回答