My code uses a datePicker, that when the datePicker is changed and matches the current date of the user device. It fires a notification. However the AVSpeechUtterance I am using fires as soon as the datePickers time is changed not when the notification appears. I would like the AVSpeechUtterance and notification to be be fired at the same time.
import UIKit
import AVFoundation
import UserNotifications
class ViewController: UIViewController {
@IBOutlet var datePicker: UIDatePicker!
@IBAction func datePicker(_ sender: Any) {
let c = UNMutableNotificationContent()
c.title = "Lets Roll"
c.subtitle = "s"
c.body = "d"
let begin = AVSpeechUtterance(string: " Hello ")
let synthesizer = AVSpeechSynthesizer()
begin.voice = AVSpeechSynthesisVoice(language: "en-US")
begin.rate = 0.08
synthesizer.speak(begin)
let triggerDate = Calendar.current.dateComponents([.year, .month, .day, .hour, .minute], from: datePicker.date )
let t = UNCalendarNotificationTrigger(dateMatching: triggerDate, repeats: false)
let r = UNNotificationRequest(identifier: "any", content: c, trigger: t)
UNUserNotificationCenter.current().add(r, withCompletionHandler: nil)
}}