Как изменить значение пользовательского ввода по умолчанию для будущего использования? - PullRequest
0 голосов
/ 29 апреля 2018

Я пытался написать простое приложение для расчета даты окончания проекта на основе ввода количества минут, которое пользователь уже завершил:

@IBOutlet weak var BDDate: NSTextField!
@IBOutlet weak var BDTime: NSTextField!

override func viewDidLoad() {
    super.viewDidLoad()
}

override var representedObject: Any? {
    didSet {
    }
}

@IBAction func BDSave(_ sender: Any) {
    let currentDate = Date()
    let daysToAdd = 10 - Int(BDTime.stringValue)!

    var dateComponent = DateComponents()
    dateComponent.day = daysToAdd

    let BDFinish = Calendar.current.date(byAdding: dateComponent, to: currentDate)

    let formatter = DateFormatter()
    formatter.dateFormat = "MMMM, dd"
    BDDate.stringValue = formatter.string(from: BDFinish!)
    }

Однако, поскольку это может занять несколько дней, поэтому будет несколько входов. Мне интересно, возможно ли сохранить предыдущие входные данные по умолчанию, чтобы дата окончания отображала истинную дату после накопленных предыдущих входных данных.

Например, если весь проект занимает 10 часов, планируя один час в день, конечный результат будет через 9 дней, если я введу 1 час сегодня. Однако когда я снова открою приложение и введу завтра еще 1 час, окончательный результат все равно будет через 9 дней, а не через 8 дней.

Ценю любое руководство или предложение. Спасибо.

1 Ответ

0 голосов
/ 29 апреля 2018

Вы можете использовать UserDefaults, которые сохранят значение между загрузками приложения, например:

    var daysRemaining = 10 //For new project

    //If there is an existing value, load it from UserDefaults
    if let savedDaysRemaining = UserDefaults.standard.value(forKey: "savedDaysRemaining") as? Int {
        daysRemaining = savedDaysRemaining
    }

    //Substract the number of new days
    let daysToSubtract = 1
    daysRemaining -= daysToSubtract

    //Save new value to User Defaults
    UserDefaults.standard.set(daysRemaining, forKey: "savedDaysRemaining")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...