我想创建将每天同时重复的本地通知 . 它有效,但有一个问题!

当它是7:30时,通知将出现4x ...也是9:30,20:30,22:30我们每天收到16x通知而不是4x

(我是初学者)谢谢你的帮助

码:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    UNUserNotificationCenter.current().requestAuthorization(options: [.alert, .sound], completionHandler: {didAllow, error in})

    // 7:30
    setupNotification(hour: 7, minute: 30)

    // 9:30
    setupNotification(hour: 9, minute: 30)

    // 20:30
    setupNotification(hour: 20, minute: 30)

    //22:30
    setupNotification(hour: 22, minute: 30)

    return true
}

func setupNotification(hour: Int, minute: Int) {

    // have to use NSCalendar for the components
    let calendar = NSCalendar(identifier: .gregorian)!;
    var dateFire = Date()

    // if today's date is passed, use tomorrow
    var fireComponents = calendar.components( [NSCalendar.Unit.day, NSCalendar.Unit.month, NSCalendar.Unit.year, NSCalendar.Unit.hour, NSCalendar.Unit.minute], from:dateFire)

    if (fireComponents.hour! > hour
        || (fireComponents.hour == hour && fireComponents.minute! >= minute) ) {

        dateFire = dateFire.addingTimeInterval(86400)  // Use tomorrow's date
        fireComponents = calendar.components( [NSCalendar.Unit.day, NSCalendar.Unit.month, NSCalendar.Unit.year, NSCalendar.Unit.hour, NSCalendar.Unit.minute], from:dateFire);
    }

    // set up the time
    fireComponents.hour = hour
    fireComponents.minute = minute

    // schedule local notification
    dateFire = calendar.date(from: fireComponents)!

    let localNotification = UILocalNotification()
    localNotification.fireDate = dateFire
    localNotification.alertTitle = "Drahá Elektrika"
    localNotification.repeatInterval = NSCalendar.Unit.day
    localNotification.alertBody = "Drahá elektrika"
    localNotification.soundName = "start.mp3"

    UIApplication.shared.scheduleLocalNotification(localNotification)
}