Swift 斯威夫特:本地通知似乎重复,然后一些消失

Swift 斯威夫特:本地通知似乎重复,然后一些消失,swift,uilocalnotification,Swift,Uilocalnotification,我有一个提醒应用程序,它正在数组中搜索,以发送服药提醒。当通知通过时,我收到了大量的通知,这些通知似乎瞬间消失,最后只剩下1个 我的初始视图控制器是一个UITableViewController。我尝试将我的fireNotifications函数放置在viewDidLoad中,但它似乎没有发送任何通知。如果我将fireNotifications函数调用放入其中一个tableView函数(即numberOfSectionsInTableView)中,我可以获得通知,但它们具有我上面提到的奇怪行为

我有一个提醒应用程序,它正在数组中搜索,以发送服药提醒。当通知通过时,我收到了大量的通知,这些通知似乎瞬间消失,最后只剩下1个

我的初始视图控制器是一个
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循环之前调用了这个函数,现在它们正确地通过了。谢谢