我有一个应用程序,该应用程序在首次启动时将CSV文件预加载到Core Data中,如下所示:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {

    let isPreloaded = defaults.bool(forKey: "isPreloaded")
    if !isPreloaded {
        preloadData()
        defaults.set(true, forKey: "isPreloaded")
    }
}


但是,我想在应用程序更新时预加载新的更新的CSV文件。我想我可以在默认值中创建一个名为“ isPreloaded2”的新密钥,但是CSV文件将随每次更新而更改,我想知道是否有更好的方法。

最佳答案

也许您可以在userDefaults中创建键lastUpdatedVersion来检查哪个版本已被更新。
然后,您可以检查类似:

let currentVersion = Bundle.main.infoDictionary?["CFBundleShortVersionString"]
if !NSUserDefaults.standardUserDefaults.objectForKey(key: "lastVersionUpdated") || NSUserDefaults.standardUserDefaults.objectForKey(key: "lastVersionUpdated") != currentVersion
{
    //Update your CSV here
    //...
    NSUserDefaults.standardUserDefaults.setObjectForKey(key: "lastVersionUpdated", object: currentVersion)
}


但是,这是否是一个优雅的解决方案仍然取决于您。

10-08 09:03