2017-07-28 130 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