2017-08-28 123 views
0

我试图发送本地通知。我的代码在下面提到。 问题是通知不起作用。我尝试了所有可能的答案在stackoverflow。请建议。 我清除所有通知,并完成通知通知不会触发特定时间

func applicationWillTerminate(_ application: UIApplication) { 
    self.loadData() 
    for obj in eventArray 
    { 
     if (obj["notification"] as? Bool)! 
     { 
      scheduleNotification(obj["time"] as! Date, obj["title"] as! String) 
      print(obj["time"] as! Date) 
     } 
    } 
    // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 
} 
func scheduleNotification(_ date: Date, _ title:String) { 
    let formatter = DateFormatter() 
    formatter.dateFormat = "HH" 
    let myhour = formatter.string(from: date) 
    let number = NumberFormatter() 
    let mynumberhour = number.number(from: myhour) 
    let intHour = mynumberhour?.intValue 
    print(intHour!) 

    formatter.dateFormat = "mm" 
    let myminute = formatter.string(from: date) 
    let mynumberMinute = number.number(from: myminute) 
    let intMinute = mynumberMinute?.intValue 
    print(intMinute!) 

    formatter.dateFormat = "MM" 
    let mymonth = formatter.string(from: date) 
    let mynumberMonth = number.number(from: mymonth) 
    let intMonth = mynumberMonth?.intValue 
    print(intMonth!) 

    formatter.dateFormat = "dd" 
    let myday = formatter.string(from: date) 
    let mynumberday = number.number(from: myday) 
    let intday = mynumberday?.intValue 
    print(intday!) 
    let calendar = Calendar.current 
    //let components = calendar.dateComponents(in: .current, from: date) 
    let newComponents = DateComponents(calendar: calendar, timeZone: .current, month: intMonth, day: intday, hour: intHour, minute: intMinute) 

    let trigger = UNCalendarNotificationTrigger(dateMatching: newComponents, repeats: true) 
    let content = UNMutableNotificationContent() 
    content.title = " Today's Event" 
    content.body = "Event Is Generated" 
    content.sound = UNNotificationSound.default() 
    let request = UNNotificationRequest(identifier: title, content: content, trigger: trigger) 
    UNUserNotificationCenter.current().add(request) {(error) in 
     if let error = error { 
     print("Uh oh! We had an error: \(error)") 
     } 
    } 
} 
+0

您为“标识符”参数传递了什么值? – Basheer

回答

0

问题我解决了。 我在“func applicationDidEnterBackground”中调用了“func scheduleNotification”,并且通知正常着火。