Дата не получает текущее время телефона Swift 4 - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть эта функция, которая рассчитывает количество времени от текущей минуты телефона. Я пытаюсь отключить таймер по истечении этого времени. Эта функция вызывается через переключатель, который пользователь переключает в приложении, и время должно сбрасываться самостоятельно. Ну, у меня проблемы с моим объектом NSDate, получающим старые значения, когда переключатель был перевернут раньше. Есть ли способ сбросить объект NSDate на ноль?

Вот мой код для расчета текущего времени телефона.

func GetInitialTime(){
    finalTime = 0
    firstTimeCounter = 0
    timeInSeconds = 0
    let calendar = NSCalendar.current
    var minutes = calendar.component(.minute, from: date)
    var timeDifference = Int()

    if(minutes == 00 || minutes == 30) {
        print("The minute hand is at zero or thirty.")
    }
    else {
        print("The minute hand is NOT ar zero or thirty")
        print("The minute hand ia at:")
        if minutes < 30 {
            while (!(minutes == 30)) {
                minutes += 1
                timeDifference += 1
            }
            print("Therefore we make the minute hand at zero or thiry: ", minutes)
            print("The time difference we add to the minute is: ", timeDifference)
        }
        else {
            var i = minutes
            while i < 60 {
                i += 1
                minutes += 1
                timeDifference += 1
            }
            print("Therefore we make the minute hand at zero or thirty: ", minutes)
            print("The Time difference we add to the minute is: ", timeDifference)
        }

    }
    finalTime = Double(timeDifference * 60)
    print("The time difference in seconds is:", finalTime)
}

И я объявляю объект Date () здесь

let center = UNUserNotificationCenter.current()
let button = UIButton(type: UIButtonType.custom)
let date = Date()
var timeInSeconds = Int()
var finalTime = Double()
var halfHour = Double(1800)
var firstTimeCounter = Int()
var firstTimer = Timer()
var repeatingTimer = Timer()
var backgroundTask = BackgroundTask()
let dispatchGroup = DispatchGroup()
var urlWeb = "http://morrowrenewablesflowdata.com/iOSConnections/Notifications.php"
var downtimes = [String]()
var flows = [String]()

1 Ответ

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

Ваш код использует переменную экземпляра date, которая является константой let. Вы не показываете контекст, в котором он установлен, но я предполагаю, что это переменная экземпляра вашего класса. Тот факт, что это константа let, означает, что она никогда не изменится в области, в которой она объявлена. Это почти наверняка ваша проблема.

...