如何使用 iOS 8 弃用设置每周重复的 UILocalNotification?

Posted

技术标签:

【中文标题】如何使用 iOS 8 弃用设置每周重复的 UILocalNotification?【英文标题】:How to set up weekly repeating UILocalNotifications with iOS 8 deprecations? 【发布时间】:2015-04-20 17:23:46 【问题描述】:

ios 8 之前,安排每周重复通知很容易,我们只需将 NSWeekCalendarUnit 分配给 notification.repeatInterval 值。现在在 iOS 8 中,几乎所有的 NSCalendarUnit 值都已被弃用和替换,主要是为了让 Apple 可以将它们从 NSDayCalendarUnit 重命名为 NSCalendarUnitDay 以保持一致性。但是,他们将NSWeekCalendarUnit 更改为NSCalendarUnitWeekOfMonthNSCalendarUnitWeekOfYear,但没有明确说明区别是什么,而且UILocalNotification 文档仍然在讨论已弃用的值。

我希望UILocalNotification每 7 天重复一次。我认为NSCalendarUnitWeekOfMonth 是正确的值,但是当我使用它时,我没有得到重复。测试很耗时,因为每次测试都需要一周时间!

有人知道哪些新的周历单位应该用于每周重复的本地通知,还是应该继续使用已弃用的值,尽管有警告?

【问题讨论】:

【参考方案1】:

假设公历,似乎NSCalendarUnitWeekOfYear 是来自1 - 530 - 52 的值,表示日历年内中的周数NSCalendarUnitWeekOfMonth1 - 50 - 4 代表一个月中的一周(未记录的东西,这些是个人意见)。 根据我的经验,我发现 NSCalendarUnitWeekOfYear 工作正常。

【讨论】:

感谢您的提示。我想出一种快速测试这些的方法是创建一个重复通知以很快触发,然后在它触发一次后检查它的下一个触发日期(显示一个 po 通知)。 NSWeekCalendarUnit 和 NSCalendarUnitWeekOfYear 都可以创建每 7 天重复一次的通知,因此 NSCalendarUnitWeekOfYear 是最好用的,因为它没有被弃用。

以上是关于如何使用 iOS 8 弃用设置每周重复的 UILocalNotification?的主要内容,如果未能解决你的问题,请参考以下文章

sizeWithFont ios 7.0 已弃用 [重复]

ios重复本地通知

由于 UISearchDisplayController 在 iOS 8 中已弃用,如何创建 UISearchController?

'openURL'在iOS 10.0中已被弃用:请使用openURL:options:completionHandler:而不是在Swift 3中[重复]

优先级和背景在 ios 8 中已弃用

周五和周六的 UILocalNotification