我有一个用invalidate()
初始化的计时器。完成转义块执行后,我正在尝试nil
并将其设置为func startRecording() {
do {
...
guard recordTimer == nil else { return }
recordTimer = Timer.scheduledTimer(withTimeInterval: 0.001,repeats: true,block: { _ in
progress += Float(self.recordTimer!.timeInterval)
...
if progress >= 30 {
self.stopRecording()
}
}) }
func stopRecording() {
recorder.stop()
if recordTimer != nil {
recordTimer?.invalidate()
recordTimer = nil
} }
。但是即使无效,也不会停止触发。我不明白发生了什么。这是我在做什么:
SELECT CTH.AutoID,CTH.Firstname,CTH.Lastname,SW.DateOfSpecimenCollection
FROM ContactTracingHeader AS CTH LEFT JOIN Swab AS SW ON CTH.AutoID = SW.PatientNo
WHERE SW.DateOfSpecimenCollection = (SELECT FIRST(DateOfSpecimenCollection)
FROM Swab ORDER BY DateOfSpecimenCollection ASC);
此recordTimer对象设置为invalidate和nil。但是,障碍仍在继续。请帮忙。
更新:问题已解决。这是由计时器停止触发后,手势识别器重新初始化引起的。当我强行使手势识别失败时,它工作正常。
N.B .:我不知道如何结束自己的问题。如果有人可以帮忙,请告诉我。