作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
你好,我对 NSCalendar
的 rangeOfUnit()
方法有疑问。我得到 NSNotFound
值,而我期望值在 <4,6> 范围内(一个月中的周数)。真正让我担心的是它依赖于平台(不适用于 iOS7)。我在调查时发现了这个错误 CVCalendar成分。我在装有 iOS 7.1.1 的 iPhone 4S 上设置了英语语言和公历。
// Range of the month.
let range = calendar.rangeOfUnit(NSCalendarUnit.WeekOfMonth, inUnit: NSCalendarUnit.Month, forDate: date)
// Should return values in range <4,6>
print("Range \(range)")
let range2 = calendar.rangeOfUnit(NSCalendarUnit.Month, inUnit: NSCalendarUnit.WeekOfMonth, forDate: date)
// Invalid range. No week contains no months.
print("Range \(range2)")
let range3 = calendar.rangeOfUnit(NSCalendarUnit.Weekday, inUnit: NSCalendarUnit.Month, forDate: date)
print("Range \(range3)")
控制台上打印的日期:
po date
2015-11-17 10:05:39 +0000
iOS9 模拟器和其他非 iOS7 设备上的控制台输出:
Range (1,5)
Range (2147483647,2147483647)
Range (1,7)
iOS7 设备上的控制台输出:
Range (2147483647,2147483647)
Range (2147483647,2147483647)
Range (1,7)
最佳答案
您可以在 Swift 2 中使用可用性检查。
let weekOfMonthUnit: NSCalendarUnit
if #available(iOS 8, *) {
weekOfMonthUnit = NSCalendarUnit.WeekOfMonth
} else {
weekOfMonthUnit = NSCalendarUnit.NSWeekCalendarUnit
}
let range = calendar.rangeOfUnit(weekOfMonthUnit, inUnit: NSCalendarUnit.Month, forDate: date)
print("Range \(range)")
关于ios - rangeOfUnit 在一个月中的几周返回 `NSNotFound`(iOS7 错误),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33754215/
你好,我对 NSCalendar 的 rangeOfUnit() 方法有疑问。我得到 NSNotFound 值,而我期望值在 范围内(一个月中的周数)。真正让我担心的是它依赖于平台(不适用于 iOS
我做了一个快速 Playground here展示 NSCalendar 的 rangeOfUnit 函数中的一个错误。 在一些初始语句之后,您可以看到我的输出 let secs = calendar
我是一名优秀的程序员,十分优秀!