2017-07-28 129 views
0

我已经做了一个名单应用程序。在应用程序中,用户可以选择4个按钮中的1个来设置通知。立即,上午,下午和晚上。目前,晚上和直接工作,但上午和下午不工作,我不确定为什么。DateComponents and Notifications Not Showing

这里是我晚上代码:

@IBAction func eveningTapped(_ sender: Any) { 

    eveningEnabled = true 
    morningEnabled = false 
    lockscreenEnabled = false 
    afternoonEnabled = false 
} 

if eveningEnabled == true { 
     var dateComponents = DateComponents() 
     dateComponents.hour = 18 
     dateComponents.minute = 00 
     let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false) 
     let content = UNMutableNotificationContent() 
     content.title = taskTextField.text! 
     content.body = DescTextField.text! 
     content.sound = UNNotificationSound.default() 
     content.badge = 1 

     let identifier = "UYLLocalNotification" 
     let request = UNNotificationRequest(identifier: identifier, 
              content: content, trigger: trigger) 
     center.add(request, withCompletionHandler: { (error) in 
      if error != nil { 
       // Something went wrong - another alert 
      } 
     }) 
    } 

这工作完全正常,但上午不上班,这里是代码:

@IBAction func morningTapped(_ sender: Any) { 

    morningEnabled = true 
    lockscreenEnabled = false 
    afternoonEnabled = false 
    eveningEnabled = false 
} 

if morningEnabled == true { 
     var dateComponents = DateComponents() 
     dateComponents.hour = 07 
     dateComponents.minute = 00 
     let trigger = UNCalendarNotificationTrigger(dateMatching: dateComponents, repeats: false) 
     let content = UNMutableNotificationContent() 
     content.title = taskTextField.text! 
     content.body = DescTextField.text! 
     content.sound = UNNotificationSound.default() 
     content.badge = 1 

     let identifier = "UYLLocalNotification" 
     let request = UNNotificationRequest(identifier: identifier, 
              content: content, trigger: trigger) 
     center.add(request, withCompletionHandler: { (error) in 
      if error != nil { 
       // Something went wrong - another alert 
      } 
     }) 
    } 
+0

这是你的真实密码? {}不匹配。 – Willeke

回答

1

因为你的代码是完全一致的(除了DateComponents),在运行时应该没有区别。

但是,因为你有区别('早晨'不起作用),原因必须是其他地方(而不是你在这里发布的代码中)。也许你早上的tapAction在InterfaceBuilder中没有正确连接?

如果你想发布更多的代码,我们可能会更好地帮助找到bug。

首先,您应该检查您的tapAction是否正在执行,当您点击时。您可以通过添加日志命令来执行此操作,如下所示:

print("Morning was tapped") 

并将此代码放入tapAction中。然后,在点击相应的按钮后,您应该在日志控制台上获取此日志。

+0

好的,所以我检查了我的连接,以及按钮何时正常工作,并且所有连接都正确。由于我的项目最近一直在播放,我将再次测试通知。将保持更新 –

+0

现在所有的工作。出于某种原因,连接有点奇怪。感谢您的帮助 –

+0

因此,如果您将我的答案标记为正确答案,那就太好了! – LukeSideWalker