2016-07-01 3 views
2

Я хочу настроить ежедневную систему уведомлений для своего приложения. Он должен уведомить пользователя дважды в день, один раз в 8:00 (привет, ваш набор утренних доз готов. Хотите проверить это?) И один раз в 7:00 вечера (Ssup! Ваша вечерняя доза ждет внутри) , Я знаю, что при этом у меня не будет уведомлений через месяц, так как есть 64 уведомления (для локальных уведомлений), но к тому времени приложение будет жить, и я сделаю настройку обновления удаленных уведомлений.Расписание местных уведомлений в определенные моменты дня

Я посмотрел на этот вопрос: How to schedule a same local notification in swift и .Day все хорошо. Мне просто нужно знать, как это делать два раза в день в указанное время ;. Заранее спасибо!

EDIT: Как установить конкретное время уведомления является частью проблемы. API NSDate дает мне смешные временные интервалы (начиная с Now/Since1973). Я просто хочу, чтобы он срабатывал в 7 часов вечера. : -/Не может показаться, что это делается с помощью этой NSDate apis, если я ничего не пропущу.

ответ

2
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { 
    // Override point for customization after application launch. 
    let settings = UIUserNotificationSettings(forTypes: .Badge, categories: nil) 
    UIApplication.sharedApplication().registerUserNotificationSettings(settings) 

    let localNotification1 = UILocalNotification() 
    localNotification1.alertBody = "Your alert message 111" 
    localNotification1.timeZone = NSTimeZone.defaultTimeZone() 
    localNotification1.fireDate = self.getEightAMDate() 
    UIApplication.sharedApplication().scheduleLocalNotification(localNotification1) 

    let localNotification2 = UILocalNotification() 
    localNotification2.alertBody = "Your alert message22" 
    localNotification2.timeZone = NSTimeZone.defaultTimeZone() 
    localNotification2.fireDate = self.getSevenPMDate() 
    UIApplication.sharedApplication().scheduleLocalNotification(localNotification2) 
    return true 
} 

func getEightAMDate() -> NSDate? { 
    let calendar: NSCalendar! = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian) 
    let now: NSDate! = NSDate() 

    let date10h = calendar.dateBySettingHour(8, minute: 0, second: 0, ofDate: now, options: NSCalendarOptions.MatchFirst)! 
    return date10h 
} 

func getSevenPMDate() -> NSDate? { 
    let calendar: NSCalendar! = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian) 
    let now: NSDate! = NSDate() 

    let date19h = calendar.dateBySettingHour(19, minute: 0, second: 0, ofDate: now, options: NSCalendarOptions.MatchFirst)! 
    return date19h 
} 
+0

эй! Спасибо за ответ .... быстрый один ... надеялся, что вы скажете мне, как установить время, чтобы быть 8: 00 AM/7 PM, потому что NSDate API не дает мне возможность установить время напрямую , только «timeIntevalSinceNow/1970/reference» и т. д. Или я должен использовать один из них? Если да, то как мне это поделать? Спасибо –

+0

Я обновил ответ и попробовал. Он работает – ronan

+0

Спасибо связующему мат. Я думаю, что календарь - это то, о чем я не знал. Посмотрел вокруг, и у нескольких людей была такая же проблема. По-видимому, API-интерфейс календаря не обновляется в документации. Но я должен подтвердить это. В любом случае, ты герой! –

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