2015-07-01 2 views
5

Если кто-то запутался и думает, что это дубликат моего вопроса со вчерашнего дня, это не так. Там я спрашивал, как вызывать функцию каждый день, здесь я спрашиваю, как вызывать уведомление в определенное время каждый день.Уведомление в Swift каждый день в указанное время?

Я ищу способ повторного локального уведомления каждый день в 7.00 утра. В настоящее время я эту установку кода, чтобы получить день, месяц, год и т.д.

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 

Как вызвать уведомления каждый день, когда время 7:00 утра?

+0

Вы знаете, что это обычно помогает посмотреть документацию, так как можно увидеть, что есть свойство repeatInterval https://developer.apple.com/library/ios/documentation/iPhone/Reference/UILocalNotification_Class/ – Gruntcakes

+0

Я знаю об этом , но я застрял, чтобы повторить его в 7.00. –

+0

Нет, там я спрашивал, как запустить функцию, это как настроить уведомление для запуска в определенное время каждый день. –

ответ

-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) 
+0

Что вы имеете в виду, когда говорите «установите следующую дату в 7.00 «? Как установить дату 7.00? –

+0

@ Yedidya его вопрос конкретно задает вопрос о том, как установить дату, помещая фрагмент кода с комментарием, в котором говорится, что «установить следующую дату в 7:00» менее полезно. – pbush25

+0

Пожалуйста, добавьте дополнительную информацию в свой ответ. Простое вставку исходного кода недостаточно для ответа. Вам нужно объяснить, что на самом деле делает ваш ответ, и как его можно применить к фактическому вопросу, который вызывает локальное уведомление. У вас репутация 3K, вы должны это знать. –

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) 

Теперь мы можем запланировать уведомление ежедневно.

localNotification.fireDate = dateToFire 
localNotification.setTimeZone(NSTimeZone.defaultTimeZone) 
localNotification.setRepeatInterval(kcfCalendarUnitDay) 

Синтаксис может быть не идеальным, я переводил с Obj-C, но вы должны получить общую идею.

+1

Что такое переменная 'localNotification'. Вы должны обновить свой ответ, чтобы показать, что такое тип и как вы его создали, чтобы OP мог легко воспроизвести приведенный вами пример кода. –

Смежные вопросы