操作button不会在本地通知中显示ios 9.2 swift 2

我正在循环中创build通知,相关的代码是:

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { appDelegate = self serNotificationType = UIUserNotificationType.Alert.union(UIUserNotificationType.Sound).union(UIUserNotificationType.Badge) let completeAction = UIMutableUserNotificationAction() completeAction.identifier = "COMPLETE" // the unique identifier for this action completeAction.title = "Clear" // title for the action button completeAction.activationMode = .Background // UIUserNotificationActivationMode.Background - don't bring app to foreground completeAction.authenticationRequired = false // don't require unlocking before performing action completeAction.destructive = true // display action in red let callInAction = UIMutableUserNotificationAction() callInAction.identifier = "CALLIN" callInAction.title = "Call now" callInAction.destructive = false callInAction.authenticationRequired = false callInAction.activationMode = UIUserNotificationActivationMode.Background callInAction.destructive = false let notificationCategory = UIMutableUserNotificationCategory() // notification categories allow us to create groups of actions that we can associate with a notification notificationCategory.identifier = "CALLINNOTIFICATION" notificationCategory.setActions([callInAction, completeAction], forContext: .Default) //UIUserNotificationActionContext.Default (4 actions max) notificationCategory.setActions([completeAction, callInAction], forContext: .Minimal) //UIUserNotificationActionContext.Minimal - for when space is limited (2 actions max) application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: notificationTypes, categories: NSSet(array:[notificationCategory]) as? Set<UIUserNotificationCategory>)) return true } 

通知的调度是在for循环中完成的(也许这是调度出现问题的原因):

 func scheduleLocalNotifications() { let arrayOfEvents: [[Meeting]] = CalendarController.sharedInstance.getAllMeetings() //remove CallIn notifications anyway self.removeScheduledNotifications() var limitCounter = 0 //limit is 64 local notifications print("scheduling start: \(CallIn.Settings.notifyNumberOfMinutesBeforeEvent)") for var x = 0; x < arrayOfEvents.count; x++ { for var y = 0; y < arrayOfEvents[x].count; y++ { let event = arrayOfEvents[x][y] if(event.startTime.timeIntervalSinceDate(NSDate()) > -2000 && limitCounter <= 64){ if(notificationsAreAllowed()){ let notification = UILocalNotification() let minutesBefore = CallIn.Settings.notifyNumberOfMinutesBeforeEvent notification.fireDate = event.startTime.dateByAddingTimeInterval(-minutesBefore * 60) //time of launch of notification if(minutesBefore <= 1){ notification.alertBody = "Your \(event.title) is about to start" }else{ notification.alertBody = "You have \(event.title) in \(Int(minutesBefore)) minutes" } notification.alertAction = "OK" notification.soundName = UILocalNotificationDefaultSoundName notification.userInfo = ["title": event.title, "UUID": event.UUID, "CallIn": "CallInNotification"] notification.category = "CALLINNOTIFICATION" notification.applicationIconBadgeNumber = 1 UIApplication.sharedApplication().scheduleLocalNotification(notification) } limitCounter += 1 } } } } 

现在呼叫和解除button不显示。 我想要的是这样的: 在这里输入图像说明

我得到的是这样的: 在这里输入图像说明

好的,我发现这个问题,这可能对未来的某个人有用:

我有

 UIApplication.sharedApplication().registerUserNotificationSettings(notificationSettings) 

在应用程序的两个不同的地方被调用两次(因为我已经在应用程序中设置,并需要从设置页面进行更改)。 所以当重构,并调用一次,它的工作。