Совершенно озадачен, почему приведенный ниже код не сохраняется правильно. Я просмотрел и распечатал каждую переменную индивидуально, чтобы убедиться, что у всех есть данные, и вплоть до latestBottle
все в порядке. Но когда я пытаюсь вернуть значение из UserDefaults, оно 0.0
.
func saveBottleEntry() {
let allBottleEntries = realm.objects(SubmittedEntry.self).filter("bottleQuantity > 0")
for bottle in allBottleEntries {
bottleTimes.append(bottle.submissionTime!)
}
latestBottle = bottleTimes.max()!
UserDefaults.standard.set(latestBottle, forKey: "latestBottle")
print(UserDefaults.standard.double(forKey: "latestBottle"))
}
bottleTimes
- это массив дат, извлекаемый из базы данных Realm. Затем я беру самую новую дату bottleTimes.max()
и сохраняю ее в UserDefaults
.
UserDefaults.standard.syncronize()
после установки - person   schedule 24.08.2017print
в опубликованном вами коде правильное значение? Если да, то обновите свой вопрос, указав подробную информацию о коде, который не работает. - person rmaddy   schedule 24.08.2017print
для меня, чтобы проверить, сохранен он или нет. Всегда возвращает0.0
- person FasterThanLlamas   schedule 24.08.2017bottleTimes
иlatestBottle
. А в чем ценностьlatestBottle
? - person rmaddy   schedule 24.08.2017latestBottle
? - person   schedule 24.08.2017UserDefaults.standard.object
, и он работал отлично. Спасибо всем! - person FasterThanLlamas   schedule 24.08.2017latestBottle
- этоDate
, почему вы пытаетесь прочитать его какDouble
, а не какDate
? - person rmaddy   schedule 24.08.2017