Как использовать NSUserDefaults для проверки между текущим временем и временем последней публикации? - PullRequest
0 голосов
/ 23 февраля 2019

Моя идея заключается в том, что при каждом нажатии кнопки «A» автоматически устанавливается значение NSDate.Когда текущее время больше существующего значения NSDate, выдается «да».Вот мой код, но я не знаю, что не так.импорт UIKit

класс ViewController: UIViewController {

var currentDateTime = NSDate()

override func viewDidLoad() {


    super.viewDidLoad()

    observeTime()
    }

@IBAction func show(_ sender: Any) {
    print(UserDefaults.standard.dictionaryRepresentation())

}
let userDefaults = UserDefaults.standard

func observeTime() {
    let posttime = userDefaults.object(forKey: "LastPostingTime") as? NSDate

    if ((posttime?.isGreaterThanDate(dateToCompare: currentDateTime))!) {
        print("yes")
    }
}


@IBAction func hihi(_ sender: Any) {


    observeTime()
            userDefaults.set(NSDate(), forKey: "LastPostingTime")


}



}

extension NSDate {
func isGreaterThanDate(dateToCompare: NSDate) -> Bool {
    //Declare Variables
    var isGreater = false

    //Compare Values
    if self.compare(dateToCompare as Date) == ComparisonResult.orderedDescending {
        isGreater = true
    }

    //Return Result
    return isGreater
}

}

1 Ответ

0 голосов
/ 23 февраля 2019

В функции hihi вы сначала сохраняете текущую дату в NSUserDefaults перед ее чтением.Таким образом, вы вернете то, что только что сохранили: текущее время.

Вы можете сначала прочитать его, сравнить с currentDateTime, а затем сохранить его по умолчанию.

...