Xcode 在Swift 2中安排特定时间的本地通知

Xcode 在Swift 2中安排特定时间的本地通知,xcode,notifications,uilocalnotification,swift2,Xcode,Notifications,Uilocalnotification,Swift2,我浏览了所有这些论坛和其他网站,我不断得到一个不符合逻辑的答案。基本上,我希望创建一个通知,例如,在每个工作日的上午6:28、下午12:28和下午5:28进行火灾 我有一些解决方案,但我真的不确定该去哪里。我的设置正确吗?感谢您的帮助 let notification: UILocalNotification = UILocalNotification() notification.category = "News and Sports" notification.alertAction = "

我浏览了所有这些论坛和其他网站,我不断得到一个不符合逻辑的答案。基本上,我希望创建一个通知,例如,在每个工作日的上午6:28、下午12:28和下午5:28进行火灾

我有一些解决方案,但我真的不确定该去哪里。我的设置正确吗?感谢您的帮助

let notification: UILocalNotification = UILocalNotification()
notification.category = "News and Sports"
notification.alertAction = "get caught up with the world"
notification.alertBody = "LIVE news and sports on VIC in just a minute!"
UIApplication.sharedApplication().scheduleLocalNotification(notification)

准备显示本地通知需要两个主要步骤:

第一步 在iOS 8+上,您的应用程序必须请求并随后获得用户显示本地通知的权限。可以在AppDelegate中按如下方式请求权限

func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
    ...
    if #available(iOS 8, *) {
        application.registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [.Sound, .Alert, .Badge], categories: nil))
    }

    return true
}
当您的应用程序在iOS 8之前的操作系统上运行时,请勿调用
注册表通知设置(:)
。否则,您的应用程序将在运行时崩溃。
幸运的是,这应该不是问题,因为您正在使用Swift 2

步骤2 将您的通知安排在未来的
fireDate

let notification:UILocalNotification = UILocalNotification()
...
... // set the notification's category, alertAction, alertBody, etc.
...
notification.fireDate = ... // set to a future date
UIApplication.sharedApplication().scheduleLocalNotification(notification)
不幸的是,根据@progrmr的说法

不能使用设置自定义重复间隔。以前曾提出过此问题(见下文),但 仅提供有限的选项。这个 是枚举类型,且仅限于

您不能将这些枚举相乘并得到它们的倍数 间隔。在中设置的本地通知不能超过64个 你的应用程序。通知发出后,您无法重新安排通知,除非 用户选择在发出通知时运行您的应用程序(他们可能会 不运行它)

有重复间隔乘数的请求。 你可以给它添加评论。我建议提交错误报告或功能 苹果公司的请求(url?)

许多其他堆栈溢出的答案证实了上面引用的声明。访问完整引用答案的链接,其中包含支持答案的列表

您的案例的一个潜在解决方法是安排3次本地通知。分别在上午6:28、下午12:28和下午5:28将每一个都设置为点火。然后,将所有3个本地通知的
repeatInterval
设置为
.CalendarUnitWeekday