Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/119.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在iOS中按用户选择的周数安排本地通知_Ios_Swift_React Native_Notifications - Fatal编程技术网

在iOS中按用户选择的周数安排本地通知

在iOS中按用户选择的周数安排本地通知,ios,swift,react-native,notifications,Ios,Swift,React Native,Notifications,用例是有一个表单,用户可以说:我希望在X天(例如周一、周五和周日)14:00收到通知。应用程序是react native,但我只是调用一个native swift函数来安排通知: 导入基础 导入用户通知 @objc(提醒) 类提醒:NSObject{ @objc func设置提醒( _消息:NSString, daysV days:NSArray, 小时:NSInteger, 分钟 ) { //我们将完全替换所有计划通知 UnuseNotificationCenter.current()。rem

用例是有一个表单,用户可以说:我希望在X天(例如周一、周五和周日)14:00收到通知。应用程序是react native,但我只是调用一个native swift函数来安排通知:

<代码>导入基础 导入用户通知 @objc(提醒) 类提醒:NSObject{ @objc func设置提醒( _消息:NSString, daysV days:NSArray, 小时:NSInteger, 分钟 ) { //我们将完全替换所有计划通知 UnuseNotificationCenter.current()。removeAllPendingNotificationRequests() //为过去的每一天创建通知 let daysC:[Int]=days.map{$0 as!Int} 日复一日{ var date=DateComponents() date.weekday=天 date.hour=小时 date.minute=分钟 let content=UNMutableNotificationContent() content.title=“提醒” content.body=消息作为字符串 让userCalendar=Calendar(标识符:.iso8601) 让dateTime=userCalendar.date(from:date) 让triggerDate=Calendar.current.dateComponents([.weekday、.hour、.minute],from:dateTime as!Date) let trigger=UNCalendarNotificationTrigger(日期匹配:triggerDate,重复:true) let identifier=“TMWTE\(天)” let request=UNNotificationRequest(标识符:标识符,内容:内容,触发器:触发器) let center=UNUserNotificationCenter.current() 添加(请求,withCompletionHandler:{(错误)在 如果let error=error{ 打印(错误); } }) } } } 我想做的是将每个工作日都包含在JS发送的列表中,并为其安排一个通知。因此,如果用户选择星期一和星期三,数组将是
[1,3]
,我将分别为每天安排通知

然而,实际发生的是,我在第一天就收到X个通知。因此,如果用户选择all days,那么在接下来的
triggerDate
中,我将收到7个通知

作为Swift的新手,我可能在做一些非理性的事情,但目前我还无法理解。现在我还尝试将
date.day
设置为下周六、周日等。。但这导致没有显示通知,这让我觉得我缺少一些基本的东西

谢谢