Swift3缓存

Swift 3 caching

有没有一种简单的方法可以将我的应用数据存储在 Swift 3 中?

我想以某种方式存储单个对象。我试过 UserDefaults.standard.set(my_object, forKey: "my_object") 但它似乎不起作用。

我把这段代码放在AppDelegate.swift里func applicationWillTerminate(_ application: UIApplication)

此外,我想在 func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool 应用程序启动时读取此对象。

UserDefaults 是最简单的方法。

I put this code in AppDelegate.swift in func applicationWillTerminate(_ application: UIApplication)

好吧,这很愚蠢,因为该方法基本上从未被调用过。将信息保存到 UserDefaults 某处,这样您的代码实际上 运行。 applicationDidEnterBackground(_:)applicationWillResignActive(_:) 是可能的选择,但是确定的方法就是在信息发生变化时将信息保存出来。

Also, I would like to read this object back in func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool, when the application starts.

好吧,99.9% 的时间您的应用程序启动时,不会调用该方法。但是如果那个方法 调用,很好,继续读回对象。