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