所以我一直在尝试为我的移动应用开发类创建一个应用程序,我需要找到一个解决我遇到的问题的解决方案,当我保存一个名为“events”的全局数组时。
这里我尝试在AppDelegate中重新加载已保存的事件类,但它在主屏幕视图控制器中没有更改:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
//Override point for customization after application launch.
//Load the events that were saved when application was terminated
let eventKey = NSUserDefaults.standardUserDefaults()
Global.events = (eventKey.arrayForKey("savedEvents") as? [Event])!
return true
}
以下是有人退出应用时调用的函数:
func applicationWillTerminate(application: UIApplication) {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
let myEvents = Global.events
NSUserDefaults.standardUserDefaults().setObject(myEvents, forKey: "savedEvents")
NSUserDefaults.standardUserDefaults().synchronize()
}
这可能只是显示此数组的viewcontroller中的错误,但如果您发现代码有问题,请告诉我。
答案 0 :(得分:0)
两个问题:
在iOS中,没有“有人退出应用程序”这样的事情,因此你所做的事情不太可能奏效,因为永远不会调用applicationWillTerminate
。在应用程序停用或后台运行时保存。
事件数组不能神奇地保存在用户默认值中,因为Event不是Property List类型。您需要将事件存档并存档数组。