我正在编写我的iOS应用程序的一项功能,该功能涉及在一周中的特定日期安排每周重复本地通知。我想正确使用NSCalendar
API,所以我不会假设我不应该做的事情。但我在NSCalendar
上看不到有关一周内有多少天的任何财产。
我使用weekdaySymbols
显示一周中的几天,并让用户选择他们想要通知的日期。然后我根据它调度本地通知。
真正的问题是:如何将weekdaySymbols
中的日期索引转换为NSDateComponents
weekday
给if let doc = Kanna.HTML(html: myHTMLString, encoding: String.Encoding.utf8) {
var bodyNode = doc.body
if let inputNodes = bodyNode?.xpath("//a/@href[ends-with(.,'.txt')]") {
for node in inputNodes {
print(node.content)
}
}
}
的值?
答案 0 :(得分:1)
这有点简化,但您可以将星期几视为属于公历,与实际使用的日历无关。这些日历主要用于管理日/月/年算术,一周的日期与每个日历的数量和月份的长度无关。
如果您接受这一点,那么您只需要更正日历的weekdaySymbols
(从0到6的索引)和NSDateComponents.weekday
之间的逐个差异(从1到7的值)。
extension DateComponents { // NSDateComponents in Swift < 3
func weekdaySymbol(in calendar: Calendar) -> String? {
guard let weekday = self.weekday else { return nil }
return calendar.weekdaySymbols[weekday - 1]
}
}