【问题标题】:Need help using init(fireAt:) timer [duplicate]需要帮助使用 init(fireAt:) timer [重复]
【发布时间】:2016-10-26 21:52:00
【问题描述】:

我想使用 init(fireAt:interval:target:selector:userInfo:repeats:) 计时器在特定时间调用特定函数。但问题是我不知道如何初始化它。在文档中它说:

'您必须使用 add(_:forMode:) 将新计时器添加到运行循环中' (https://developer.apple.com/reference/foundation/timer/1415700-init)

但我不确定我是如何做到这一点的。任何人都可以为我解释一下吗?

【问题讨论】:

    标签: swift timer nstimer runloop


    【解决方案1】:

    尝试使用类函数scheduledTimerWithTimeInterval

    Swift 3

    var calender = Calendar(identifier: .gregorian)
    
    calender.timeZone = TimeZone(abbreviation: "GMT")!
    
    let tomorrow = calender.date(byAdding: .day, value: 1, to: Date())
    let midnight = calender.startOfDay(for: tomorrow!)
    
    let timer = Timer(
        fireAt: midnight,
        interval: 5,
        target: self,
        selector: #selector(didInterval),
        userInfo: nil,
        repeats: false
    )
    

    【讨论】:

    • 具体的用途我大概应该说清楚一点。我不想在特定时间(midninght)调用函数。我在想这就是带有 (fireAt:) 的计时器的用途?
    猜你喜欢
    • 2020-12-12
    • 2016-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多