斯威夫特每天都会在规定时间发出通知吗?

5 nsdate ios swift

如果有人感到困惑,并认为这是我昨天的问题的重复,那不是.在那里我问每天如何调用一个函数,在这里我问的是如何在每天的特定时间调用通知.

我正在寻找一种方法,每天早上7点重复本地通知.我目前有这个代码设置来获取日,月,年等.

let date = NSDate()
    let calendar = NSCalendar.currentCalendar()
    let components = calendar.components(.CalendarUnitHour | .CalendarUnitMinute | .CalendarUnitMonth | .CalendarUnitYear | .CalendarUnitDay, fromDate: date)
    let hour = components.hour
    let minutes = components.minute
    let month = components.month
    let year = components.year
    let day = components.day
Run Code Online (Sandbox Code Playgroud)

当时间是早上7点,我如何每天拨打通知?

pbu*_*h25 5

首先像你一样创建日历对象:

var calendar = NSCalendar()
var calendarComponents = NSDateComponents()
calendarComponents.setHour(7)
calendarComponents.setSeconds(0)
calendarcomponents.setMinutes(0)
calendar.setTimeZone(NSTimeZone.defaultTimeZone)
var dateToFire = calendar.dateFromComponents(calendarComponents)
Run Code Online (Sandbox Code Playgroud)

现在我们可以每天安排通知.

localNotification.fireDate = dateToFire
localNotification.setTimeZone(NSTimeZone.defaultTimeZone)
localNotification.setRepeatInterval(kcfCalendarUnitDay)
Run Code Online (Sandbox Code Playgroud)

语法可能不完美,我是从Obj-C翻译的,但你应该得到一般的想法.


Yed*_*iss -3

    var now = NSDate()
    var calendar = NSCalendar.currentCalendar()
    var components = calendar.components(.CalendarUnitHour | .CalendarUnitMonth | .CalendarUnitYear | .CalendarUnitDay, fromDate: now)
    var d = NSCalendar.currentCalendar().dateFromComponents(components)
    if components.hour > 6 {
        d = NSDate(timeInterval: 60*60*24, sinceDate: d!)
    }


    var n = UILocalNotification()
    n.fireDate = d
    n.repeatInterval = NSCalendarUnit.CalendarUnitDay
    n.alertBody = "This is dayly notification"
    UIApplication.sharedApplication().scheduleLocalNotification(n)
Run Code Online (Sandbox Code Playgroud)