iOS Swift локальное уведомление не " выскакивает"
Я пытаюсь отправить локальное уведомление в назначенное время. Но уведомления не появляются на экране, но он показывает в Центре уведомлений, когда я проведите пальцем вниз.
Это то, чего я пытаюсь достичь, это то, что я получаю.
этот код из didFinishLaunchingWithOptions () моего AppDelegate.
// Setup local push notifications
application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [UIUserNotificationType.Alert, UIUserNotificationType.Badge, UIUserNotificationType.Sound], categories: nil))
scheduleNotifications()
и это код для scheduleNotifications ()
func scheduleNotifications() {
// create a corresponding local notification
let notification = UILocalNotification()
// Get today's date, time and year
let calendar = NSCalendar.currentCalendar()
let components = calendar.components([NSCalendarUnit.Day, NSCalendarUnit.Month, NSCalendarUnit.Year], fromDate: NSDate())
// Sets the fire time to 2pm/1400 hours to anticipate user for lunch time
components.hour = 19
components.minute = 13
components.second = 00
notification.fireDate = components.date // Sets the fire date
notification.alertBody = "Enjoyed your lunch? Don't forget to track your expenses!"
notification.alertAction = "Add expense"
notification.repeatInterval = NSCalendarUnit.Day // Repeats the notifications daily
UIApplication.sharedApplication().scheduleLocalNotification(notification)
}
любая помощь будет оценили. Спасибо!
3 ответов
ваша проблема заключается в том, как вы преобразуете объект NSDateComponents в nsdate.
просто называя components.date
без установки calendar
на
Я получаю такое же странное поведение. Просто создал новый проект для тестирования кода.
что я заметил, когда вы меняете свой fireDate на:
notification.fireDate = NSDate(timeIntervalSinceNow: 10)
вы получите желаемое поведение.
надеюсь, что это немного поможет!