2017-02-17 24 views
-2

Есть ли простой способ хранения данных моего приложения в Swift 3?Swift 3 caching

Я хотел бы как-то сохранить один объект. Я пробовал 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, при запуске приложения.

ответ

1

UserDefaults - самый простой способ.

Я ставлю этот код в AppDelegate.swift в func applicationWillTerminate(_ application: UIApplication)

Ну, это довольно глупо, потому что этот метод не в основном не называли. Сохраните информацию в UserDefaults где-нибудь, чтобы ваш код действительно выполнялся. applicationDidEnterBackground(_:) и applicationWillResignActive(_:) возможны варианты, но способ быть уверенным в том, чтобы просто сохранять информацию при каждом изменении информации.

Кроме того, я хотел бы прочитать этот объект еще в func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool, когда приложение запустится.

Ну, в 99,9% случаев, когда приложение запускается, этот метод не будет вызываться. Но если этот метод называется, позвоните, хорошо, продолжайте читать и снова прочитайте объект.

+0

Объект не находится в списке свойств (это не стандартный тип, например NSDate или NSNumber). Как добавить этот объект в UserDefaults? –

+0

Очень хороший вопрос! Но это вопрос, на который много раз ответили «Переполнение стека», поэтому просто выполните поиск. Вы можете хранить что-либо в UserDefaults; вам просто нужно сделать его архивируемым в NSData и сделать это. (Можете помочь вам взглянуть на обсуждение в моей книге: http://www.apeth.com/iOSBook/ch36.html#_saving_and_reading_files) – matt

+0

@ BartoszWoźniak Для хранения пользовательского объекта класса в UserDefaults прочитайте что-нибудь о протоколе NSCoding, закодируйте -decode, archive-unarchive http://stackoverflow.com/questions/37980432/swift-3-saving-and-retrieving-custom-object-from-userdefaults –

 Смежные вопросы

  • Нет связанных вопросов^_^