如何在Swift中改善数据保存?

时间:2016-10-22 14:09:06

标签: ios swift

我终于设法让Apple Food Tracker教程应用程序运行,尽管使用了一种完全不同的评级控制方法。对于那些不熟悉应用程序的人,它允许您创建和编辑一组简单的“用餐”记录。

为了加速应用程序,我只会在应用程序关闭时将数据保存到文件,而不是每次添加,编辑或删除项目时都保存。

问题在于保存似乎很慢,即使只有四个项目中的三个。如果我在关闭后过早地重新打开应用程序,数据将恢复为之前的保存。

这是我的保存功能,在包含数据模型的表视图控制器中:

public func saveMeals() {
    let isSuccessfulSave = NSKeyedArchiver.archiveRootObject(meals, toFile: Meal.ArchiveURL.path)
    if !isSuccessfulSave {
        print("Failed to save meals")
    }
}

以下是来自AppDelegate的电话:

func applicationWillTerminate(_ application: UIApplication) {
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.

    if let rootViewController = window?.rootViewController as? UINavigationController {
        if let viewController = rootViewController.viewControllers.first as? MealTableViewController {
            viewController.saveMeals()
        }
    }

}

是否有更好,更快的保存方式,还是可以在保存完成之前阻止应用关闭?感谢您的任何建议。

编辑:有时似乎没有调用保存功能。如果我总是在桌面视图控制器可见的情况下关闭应用程序,该怎么办?

0 个答案:

没有答案