2015-09-20 3 views
0

Недавно я обновился до Xcode 7 beta, и у меня возникла проблема с планированием UILocalNotifications. Если кто-нибудь сможет понять, почему они не функционируют, я бы очень признателен за помощь. Не беспокойтесь о тех других классах, как «Время и дата», они очень понятны, и я подтвердил, что они работают нормально.Невозможно запланировать локальное уведомление в Swift 2

Мой объект:

class NotificationWithTime { 
    var UINotification = UILocalNotification() 
    init(title: String, day: Date, time: Time) { 
     let formatter = NSDateFormatter() 
     let dayday = day.day 
     let dayMonth = day.month 
     let dayYear = day.year 
     let timeMinute = time.minute 
     var timeHour = time.hour 
    if time.tod == TOD.PM { 
     timeHour! += 12 
    } 
    formatter.dateFormat = "yyyy-MM-dd HH:mm" 
    formatter.timeZone = NSTimeZone(abbreviation: "EST") 
    UINotification.alertAction = title 
    UINotification.fireDate = formatter.dateFromString("\(dayYear)-\(dayMonth)-\(dayday) \(timeHour!):\(timeMinute!)") 
    UIApplication.sharedApplication().scheduleLocalNotification(UINotification) 
    //print("set a new notification for" + "\(dayMonth)-\(dayday)-\(dayYear) \(timeHour):\(timeMinute)") 
} 
} 

Мой экземпляр:

let time = ScheduleGenerator.refineTime(Time(t: TOD.PM, d: 20, h: 8, m: 12, s: 0)) 
    _ = NotificationWithTime(title: "chicke is good", day: ScheduleGenerator.refineDate(Date(m: 9, d: 19, y: 2015)), time: time) 
+0

И могли бы вы отлаживать как слишком какая дата NS это приравнивает '\ (dayYear) - \ (dayMonth) - \ (dayday) \ (TimeHour !): \ (timeMinute!) ' – milo526

+0

@ milo526 Хорошо, я получил его на работу, но он действует дважды, любая идея почему? –

ответ

3

В прошивкой 8 и более поздних версиях приложения, которые используют либо локальные или удаленные уведомления должны регистрировать типы уведомлений, которые они намерены поставить.

Swift

let mySettings = UIUserNotificationSettings(forTypes: [.Badge, .Sound, .Alert], categories: nil); 

    UIApplication.sharedApplication().registerUserNotificationSettings(mySettings); 

Objective-C

UIUserNotificationType types = UIUserNotificationTypeBadge | 
UIUserNotificationTypeSound | UIUserNotificationTypeAlert; 

UIUserNotificationSettings *mySettings = 
[UIUserNotificationSettings settingsForTypes:types categories:nil]; 

[[UIApplication sharedApplication] registerUserNotificationSettings:mySettings]; 
+0

Какао - это каркас. Я думаю, вы имели в виду Objective-C? – milo526

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