Ios 本地通知停止工作,可以';我不明白为什么

Ios 本地通知停止工作,可以';我不明白为什么,ios,swift,uilocalnotification,Ios,Swift,Uilocalnotification,在我把iOS项目搁置之前,我在去年的某个时候收到了本地通知,但当我几周前回来时,我注意到它们不再有效。我已经挖了几天了,完全被难住了。徽章仍会通过后台提取正确更新,但不再发送通知警报。这里是我测试的最低设置 AppDelegate: func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool { a

在我把iOS项目搁置之前,我在去年的某个时候收到了本地通知,但当我几周前回来时,我注意到它们不再有效。我已经挖了几天了,完全被难住了。徽章仍会通过后台提取正确更新,但不再发送通知警报。这里是我测试的最低设置

AppDelegate:

func application(application: UIApplication, willFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {
   application.setMinimumBackgroundFetchInterval(UIApplicationBackgroundFetchIntervalMinimum)
   application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Badge, .Alert], categories: nil))

    return true
}    

 func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {    
   let localNotification = UILocalNotification()
   localNotification.alertAction = "Message"
   application.presentLocalNotificationNow(localNotification)

   completionHandler(.NoData)
 }
我尝试过的事情:

  • 卸载/重新安装应用程序(设备和模拟器)
  • 更改包标识符
  • 禁用/重新启用后台提取功能
  • 通过添加fireDate属性来显示延迟的本地通知
  • 已尝试将FinishLaunchingWithOptions和didFinishLaunchingWithOptions
  • 我已经对它进行了调试,并且100%确定在模拟后台提取时执行performFetchWithCompletionHandler,并且调用presentLocalNotificationNow
设置:

  • Xcode 7.3.1(从以前的版本开始,可能是6.x.x)
  • Swift 2.2(于2.1开始项目,并已投入使用)
  • iOS 9(于8月8日启动该项目,并已投入使用)

API中是否有我遗漏的更改,或者我正在做的工作中是否存在错误?谢谢你的帮助

UILocalNotification要求设置
alertBody
才能显示。因此,我们有以下工作:

func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {    
   let localNotification = UILocalNotification()
   localNotification.alertBody = "You have a notification"
   localNotification.alertAction = "Message"
   application.presentLocalNotificationNow(localNotification)

   completionHandler(.NoData)
}

UILocalNotification要求设置
alertBody
才能显示。因此,我们有以下工作:

func application(application: UIApplication, performFetchWithCompletionHandler completionHandler: (UIBackgroundFetchResult) -> Void) {    
   let localNotification = UILocalNotification()
   localNotification.alertBody = "You have a notification"
   localNotification.alertAction = "Message"
   application.presentLocalNotificationNow(localNotification)

   completionHandler(.NoData)
}

尝试以下操作:
let mySettings:UIUserNotificationSettings=UIUserNotificationSettings(forTypes:[.Alert.Badge],categories:nil as?Set)UIApplication.sharedApplication().registerNotificationsettings(mySettings)
cat as?Set
给出了一个错误,但我尝试使用
Set()
替代,但它不起作用。是的,你必须设置
categories:nil
编辑了上面的注释复选框no luck,
nil as?Set
生成“表达式类型“Set”不明确,没有更多上下文”尝试以下操作:
让mySettings:UIUserNotificationSettings=UIUserNotificationSettings(forTypes:[.Alert,.Badge],categories:nil as?Set)UIApplication.sharedApplication().registerUserNotificationSettings(mySettings)
cat as?Set
给出了一个错误,但我尝试使用
Set()
替代,但它不起作用。是的,你必须设置
categories:nil
编辑了上面的注释复选框no luck,
nil as?Set
生成“表达式类型“Set”不明确,没有更多上下文”