Получить Unix отметку времени, которая увеличивается сама по себе - PullRequest
0 голосов
/ 10 июля 2020

Итак, в основном то, что я хотел бы сделать, это иметь объект даты

let unixTime = Date().timeIntervalSince1970.advanced(by: -30)

и изменять unixTime по мере прохождения секунд, чтобы unixTime смещался от текущего времени без необходимости увеличивать значение себя. Есть ли способ сделать это в Swift?

1 Ответ

0 голосов
/ 10 июля 2020

Вместо объявления unixTime как константы объявите его как вычисляемую переменную.

Например, если этот код является частью структуры или класса, я бы сделал следующее:

struct Test {
    var unixTime: Date {
        Date().timeIntervalSince1970.advanced(by: -30)
    }

    func tion() {
        //do stuff
    }

    ...
}

Если он вам нужен в императивном контексте (например, в сценарии) или вы не хотите загромождать пространство имен вашего типа, вы можете объявить его локально:

...
doStuff()
var unixTime: Date {
    Date().timeIntervalSince1970.advanced(by: -30)
}
...

В любом случае, вы можете ссылаться на него так же, как и сейчас, но он будет каждый раз пересчитываться.

...