如何使用应用程序委托保存状态
Posted
技术标签:
【中文标题】如何使用应用程序委托保存状态【英文标题】:How to save states using an application delegate 【发布时间】:2010-02-02 02:17:48 【问题描述】:我有一个基于对象属性显示一些图形的应用程序。我希望该对象的状态在下次启动应用程序时保持不变。我知道应用程序委托有一个我可以使用的“applicationwillterminate”函数,但问题是我不知道如何获取指向对象的指针。
我正在尝试使这个 iphone 应用程序遵循 MVC 原则,并且我有正确的视图和控制器。应用程序代表如何融入图片中,我该如何使用它们?我到处读到关于在“applicationWillTerminate”期间保存应用程序状态的建议,但没有具体的例子!
谁能指点我一些文献或帮我一把?
谢谢!
【问题讨论】:
【参考方案1】:查看我对this question 的回复。如果您需要更多帮助,请告诉我。
【讨论】:
嘿大卫,谢谢你的回复。我确实有一个问题,我发现我的应用程序委托没有对我的对象的引用,并且我无法在我的委托代码中说出类似 appDelegate.myObject 的内容。对象在控制器文件中声明。应用程序委托是否应该“包含”控制器文件? 另一方面,我还尝试让控制器成为 UIApplicationDelegate 的委托,如“@interface Controller : NSObjectviewController.myObject
之类的内容来引用它们。要创建一个属性,在您的 .h 中,在接口下方,您需要类似 @property (nonatomic, retain) MyObjectType *myObject;
和在实现中的 .m 中:@synthesize myObject;
当您拥有它时,您应该没有问题。
所以要确定你在说什么,委托访问控制器的方式是在我的控制器代码中的某处执行“[[UIApplication sharedApplication] delegate],然后设置 myObject委托中的属性到 controller.myOjbect? 就像:我认为这是这样做的方法,但要确保我没有做出任何错误的假设或糟糕的设计。
不完全是,设置你的 UIViewController 拥有的 myObject。如果您需要在委托中访问它以进行保存,那么您可以使用 viewController.myObject以上是关于如何使用应用程序委托保存状态的主要内容,如果未能解决你的问题,请参考以下文章
如何在 sqlite 或 CoreData 中保存位置坐标,并在 swift 中进行重要的位置监控