swift – 为什么只调用我的上一个本地通知函数?
发布时间:2020-12-14 04:39:37 所属栏目:百科 来源:网络整理
导读:我对 swift很新,我正在尝试调用多个函数来请求UISwitch IBAction中的本地通知.我想在某个日期发送通知 – 一年中的每个季度在第4,7,10,1个月.只有第四季度功能被调用.如何调用所有四个函数?这是我的代码: // UISwitch用于季度通知 @IBAction func quarterl
我对
swift很新,我正在尝试调用多个函数来请求UISwitch IBAction中的本地通知.我想在某个日期发送通知 – 一年中的每个季度在第4,7,10,1个月.只有第四季度功能被调用.如何调用所有四个函数?这是我的代码:
// UISwitch用于季度通知 @IBAction func quarterlyFrequencyTapped(_ sender: UISwitch) { if quarterlyFrequency.isOn == true { firstQuarter(); secondQuarter(); thirdQuarter(); fourthQuarter() print("quarterly frequency is (quarterlyFrequency.isOn)") } else { removeQuarterlyNotification() print("quaterly frequency is (monthlyFrequency.isOn)") } } //所有四个季度的功能 func firstQuarter() { let firstQuarterContent = UNMutableNotificationContent() firstQuarterContent.title = "First Quarter" firstQuarterContent.subtitle = "Some string" firstQuarterContent.body = "Some other string" var firstQuarterDate = DateComponents() firstQuarterDate.month = 3 firstQuarterDate.day = 11 firstQuarterDate.hour = 19 firstQuarterDate.minute = 20 let firstQuarterTrigger = UNCalendarNotificationTrigger(dateMatching: firstQuarterDate,repeats: true) let firstQuarterRequestIdentifier = "Quarterly" let firstQuarterRequest = UNNotificationRequest(identifier: firstQuarterRequestIdentifier,content: firstQuarterContent,trigger: firstQuarterTrigger) UNUserNotificationCenter.current().add(firstQuarterRequest,withCompletionHandler: nil) } func secondQuarter() { let secondQuarterContent = UNMutableNotificationContent() secondQuarterContent.title = "Second Quarter" secondQuarterContent.subtitle = "Some string" secondQuarterContent.body = "Some other string" var secondQuarterDate = DateComponents() secondQuarterDate.month = 3 secondQuarterDate.day = 11 secondQuarterDate.hour = 19 secondQuarterDate.minute = 21 let secondQuarterTrigger = UNCalendarNotificationTrigger(dateMatching: secondQuarterDate,repeats: true) let secondQuarterRequestIdentifier = "Quarterly" let secondQuarterRequest = UNNotificationRequest(identifier: secondQuarterRequestIdentifier,content: secondQuarterContent,trigger: secondQuarterTrigger) UNUserNotificationCenter.current().add(secondQuarterRequest,withCompletionHandler: nil) } func thirdQuarter() { let thirdQuarterContent = UNMutableNotificationContent() thirdQuarterContent.title = "Third Quarter" thirdQuarterContent.subtitle = "Some string" thirdQuarterContent.body = "Some other string" var thirdQuarterDate = DateComponents() thirdQuarterDate.month = 3 thirdQuarterDate.day = 11 thirdQuarterDate.hour = 19 thirdQuarterDate.minute = 22 let thirdQuarterTrigger = UNCalendarNotificationTrigger(dateMatching: thirdQuarterDate,repeats: true) let thirdQuarterRequestIdentifier = "Quarterly" let thirdQuarterRequest = UNNotificationRequest(identifier: thirdQuarterRequestIdentifier,content: thirdQuarterContent,trigger: thirdQuarterTrigger) UNUserNotificationCenter.current().add(thirdQuarterRequest,withCompletionHandler: nil) } func fourthQuarter() { let fourthQuarterContent = UNMutableNotificationContent() fourthQuarterContent.title = "Fourth Quarter" fourthQuarterContent.subtitle = "Some string" fourthQuarterContent.body = "Some other string" var fourthQuarterDate = DateComponents() fourthQuarterDate.month = 3 fourthQuarterDate.day = 11 fourthQuarterDate.hour = 19 fourthQuarterDate.minute = 23 let fourthQuarterTrigger = UNCalendarNotificationTrigger(dateMatching: fourthQuarterDate,repeats: true) //let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 60,repeats: true) let fourthQuarterRequestIdentifier = "Quarterly" let fourthQuarterRequest = UNNotificationRequest(identifier: fourthQuarterRequestIdentifier,content: fourthQuarterContent,trigger: fourthQuarterTrigger) UNUserNotificationCenter.current().add(fourthQuarterRequest,withCompletionHandler: nil) } 解决方法
我认为你在iOS10上,你正在使用UserNotifications框架吗?
您的标识符很可能具有相同的标识符,并且每个标识符都会更新以前的通知. 原因标识符用于帮助您更新具有相同标识符的先前通知.例如,您发送通知以将分数从0-0更新为0-1.而不是在屏幕上有2个通知,你现在只有一个. 您的修复是为每个使用不同的标识符. 有关更多信息,请参阅此moment以获取WWDC视频 编辑后更新:正如我所说的……所有通知都以“季度”作为标识符.给他们每个人一个单独的名字. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |