我需要创建一个这样的计时器:
timer = Timer.scheduledTimer(timeInterval: 2, target: self, selector: #selector(dismissNotification(completion:)), userInfo: nil, repeats: false)
func dismissNotification(completion: (() -> ())? = nil) { ... }
但它崩溃而没有显示任何原因。为什么会发生?以及如何解决这个问题?
最佳答案
(NS)Timer
仅允许两种类型的操作:
没有参数
func timerFireMethod()
通过单个参数传递受影响的
(NS)Timer
实例func timerFireMethod(_ timer : Timer)
但是在iOS 10 / macOS 10.12中,您可以使用带闭包的新API
class func scheduledTimer(withTimeInterval interval: TimeInterval,
repeats: Bool,
block: @escaping (Timer) -> Void) -> Timer
关于ios - 如何在Swift 3中为带有可选参数的函数创建选择器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39998069/