Есть ли простой способ хранения данных моего приложения в 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
, при запуске приложения.
Объект не находится в списке свойств (это не стандартный тип, например NSDate или NSNumber). Как добавить этот объект в UserDefaults? –
Очень хороший вопрос! Но это вопрос, на который много раз ответили «Переполнение стека», поэтому просто выполните поиск. Вы можете хранить что-либо в UserDefaults; вам просто нужно сделать его архивируемым в NSData и сделать это. (Можете помочь вам взглянуть на обсуждение в моей книге: http://www.apeth.com/iOSBook/ch36.html#_saving_and_reading_files) – matt
@ BartoszWoźniak Для хранения пользовательского объекта класса в UserDefaults прочитайте что-нибудь о протоколе NSCoding, закодируйте -decode, archive-unarchive http://stackoverflow.com/questions/37980432/swift-3-saving-and-retrieving-custom-object-from-userdefaults –