gpt4 book ai didi

ios - 定时器选择器中具有完成功能的函数

转载 作者:行者123 更新时间:2023-11-30 11:26:55 25 4
gpt4 key购买 nike

我声明一个函数:

@objc func fetchDatabase(completion: ((Bool) -> Void)? = nil) 

我允许完成为nil,因此我可以将其称为fetchDatabase()

fetchDatabase(completion: { (result) in
// Stuff in here
})

但是,我也尝试在 #selector 中使用此函数作为 Timer。我使用以下行创建此计时器:

Timer.scheduledTimer(timeInterval: 1, target: self, selector: #selector(fetchDatabase), userInfo: nil, repeats: true)

如果没有完成,则运行正常。但是,添加完成后,每当计时器运行时,我都会收到 EXC_BAD_ACCESS 错误。如果这确实是错误,那么我们将非常感谢有关正确构建此选择器的一些帮助。

最佳答案

传递给计时器的选择器仅允许两种可能的签名之一

  1. someFunction()
  2. someFunction(someLabel someParameter: Timer)

您无法传递 fetchDatabase(completion:) 函数,因为它与两个合法选择器签名中的任何一个都不匹配。

您需要传递一个有效的选择器,该选择器依次调用您的 fetchDatabase(completion:) 函数。例如:

@objc timerHandler() {
fetchDatabase(completion: { (result) in
// Stuff in here
})
}

#selector(timerHandler) 与计时器一起使用。

关于ios - 定时器选择器中具有完成功能的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50647346/

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