我可以在iPhone OS中关闭时保存我的应用程序状态吗?

Ste*_*eve 3 iphone bookmarks

我有一个功能很像电子书的应用程序.我有一堆各种语言的文本信息,可通过多种深入分析方法访问.当用户想要进入他们最后阅读的位置时,他们当前必须浏览部分和章节菜单以回到原来的位置.一个理想的解决方案是设置书签系统,我正在考虑.

但是,如果我没记错,当iPhone OS 4宣布时,他们似乎在保存应用程序状态方面增加了很多功能.这是否意味着有人使用我的阅读器应用程序可以直接退出,做任何事情,然后当他们重新进入时,它就像他们离开时的阅读屏幕一样?

我不太了解如何设置书签系统,我想它值得研究,但我可能想要推迟iPhone OS 4,如果这确实是它能够做到的.任何想法或见解将不胜感激!

Jef*_*ley 5

这在iPhone OS中一直是可能的.大多数人NSUserDefaults用来存储他们的应用程序的状态.然后在您的应用程序委托-applicationDidFinishLaunching方法中,或者在您设置视图和初始化应用程序状态的任何位置,只需恢复使用保存的状态NSUserDefaults.


pre*_*io2 5

正如其他人所指出的那样,OS4并不是特别的,在所有应用程序中实现这一点都是很好的做法.

我建议用户在书中翻页时,例如使用NSUserDefaults以下方法保存对该页面的引用:

NSUserDefaults *userPreferences = [NSUserDefaults standardUserDefaults];
[userPreferences setObject:currentPageNumber forKey:@"pageNumber"];
Run Code Online (Sandbox Code Playgroud)

当应用程序启动时,您可以读取此值并相应地执行操作.

[[NSUserDefaults standardUserDefaults] stringForKey:@"pageNumber"];
Run Code Online (Sandbox Code Playgroud)

您可能只希望在应用程序即将关闭时存储引用,但最好先将其存储(如果应用程序意外退出)


此外,您提到用户可以浏览多种"向下钻取方法".您可能希望NSMutableArray在用户在应用程序中的位置保留记录,并将其保存NSUserDefaults.当您的应用程序启动时,您将处理此数组中的信息,以使用户返回到他们中断的位置.