Swift 斯威夫特:本地通知似乎重复,然后一些消失
我有一个提醒应用程序,它正在数组中搜索,以发送服药提醒。当通知通过时,我收到了大量的通知,这些通知似乎瞬间消失,最后只剩下1个 我的初始视图控制器是一个Swift 斯威夫特:本地通知似乎重复,然后一些消失,swift,uilocalnotification,Swift,Uilocalnotification,我有一个提醒应用程序,它正在数组中搜索,以发送服药提醒。当通知通过时,我收到了大量的通知,这些通知似乎瞬间消失,最后只剩下1个 我的初始视图控制器是一个UITableViewController。我尝试将我的fireNotifications函数放置在viewDidLoad中,但它似乎没有发送任何通知。如果我将fireNotifications函数调用放入其中一个tableView函数(即numberOfSectionsInTableView)中,我可以获得通知,但它们具有我上面提到的奇怪行为
UITableViewController
。我尝试将我的fireNotifications
函数放置在viewDidLoad
中,但它似乎没有发送任何通知。如果我将fireNotifications
函数调用放入其中一个tableView函数(即numberOfSectionsInTableView
)中,我可以获得通知,但它们具有我上面提到的奇怪行为
我的代码是:
func fireNotifications() {
if NSUserDefaults().boolForKey("NotifySwitch") { //checks settings to make sure user wants reminders
for (index, items) in myMedsList.enumerate() {
let notification = UILocalNotification()
notification.fireDate = NSDate(timeIntervalSinceNow: 20)
notification.alertBody = "Reminder: Take your \(items.name) now!"
notification.alertAction = "Let's take my meds!"
notification.soundName = UILocalNotificationDefaultSoundName
notification.userInfo = ["Med Index": index]
UIApplication.sharedApplication().scheduleLocalNotification(notification)
}
}
}
我在函数调用的位置出错了吗?还是代码中有什么错误?需要注意的是,出于测试目的,我只将fireDate设置为20秒,但计划为myMedsList数组中的每个项目自定义fireDate。看起来您每次都在添加所有通知。您应该只添加以前未添加的通知。如果您不想这样做,可以在再次添加所有通知之前调用
cancelAllLocalNotifications()
。在添加药物时,是否最好为阵列中的每个项目安排一次?然后每次编辑药物时我都需要编辑通知,这会更复杂。用户可以编辑每种药物每天的服用时间,这就需要更改通知。因此,我让它们在加载应用程序时都运行。将需要取消以前的测试,但这不应该改变我在测试中遇到的问题,因为它们都只启动一次。更新-你完全正确。我在运行for循环之前调用了这个函数,现在它们正确地通过了。谢谢