Инициализируйте @Published var SwiftUI - PullRequest
1 голос
/ 20 апреля 2020

У меня есть следующее

import Foundation


class TimeToEatTrackerViewModel: ObservableObject {

@Published var currentMeal: Int = UserDefaults.standard.integer(forKey: "CurrentMeal") {
    didSet {
        UserDefaults.standard.set(self.currentMeal, forKey: "CurrentMeal")
    }
}

@Published var startDay: Bool = UserDefaults.standard.bool(forKey: "startDay") {

    didSet {
        UserDefaults.standard.set(self.startDay, forKey: "startDay")
    }
}

}

Мне нужно инициализировать startDay с true, как я могу это сделать? Я пробовал несколько способов, и это не работает, например, положить это поверх didSet:

init(){
         startDay = false
      }

Спасибо

Ответы [ 2 ]

1 голос
/ 20 апреля 2020

Здесь возможен вариант

@Published var startDay: Bool

init() {
    startDay = true
    if let storedDay = UserDefaults.standard.value(forKey: "startDay") {
        startDay = storedDay as! Bool
    }
}
0 голосов
/ 20 апреля 2020

не понятно, о чем вы здесь спрашиваете. Если вы хотите всегда инициализировать startDay значением true при запуске приложения, тогда:

@Published var startDay: Bool = true {
    didSet {
        UserDefaults.standard.set(self.startDay, forKey: "startDay")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...