gpt4 book ai didi

Swift:SimplePing 定时器不触发

转载 作者:行者123 更新时间:2023-11-28 13:28:45 26 4
gpt4 key购买 nike

我正在尝试使用此解决方案,iOS SimplePing delegates , 为我的 SimplePing 实现创建超时,但它不起作用。 SimplePing 库中没有内置任何内容来完成此操作。

我已经尝试在 @objc func sendping()public func simplePing(_ pinger: SimplePing, didSendPacket packet: Data, sequenceNumber: UInt16) 中输入计时器,因为我已经跟踪了它在这些点上的进展,但实际上从未在这些功能中的任何一个中触发。

    public func simplePing(_ pinger: SimplePing, didSendPacket packet: Data, sequenceNumber: UInt16) {
pingTimer = Timer(timeInterval: 1.0, target: self, selector: #selector(timerFired), userInfo: nil, repeats: false)
}

    @objc func sendPing() {
self.pinger!.send(with: nil)
pingTimer = Timer(timeInterval: 1.0, target: self, selector: #selector(timerFired), userInfo: nil, repeats: false)
}

这是 timerFired()

    @objc func timerFired () {
pingResponse = String(format: "Response = DID NOT RECIEVE LATENCY")
print(pingResponse)
}

最佳答案

使用您选择的 API,您负责在运行循环上安排计时器(您没有安排)。

自调度 API 是

pingTimer = Timer.scheduledTimer(timeInterval: 1.0, target: self, selector: #selector(timerFired), userInfo: nil, repeats: false)

或者使用更现代的基于闭包的 API

pingTimer = Timer.scheduledTimer(withTimeInterval: 1.0, repeats: false) { [weak self] timer in
self?.pingResponse = String(format: "Response = DID NOT RECIEVE LATENCY")
print(self?.pingResponse)
}

关于Swift:SimplePing 定时器不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57858473/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com