gpt4 book ai didi

ios - rangeOfUnit 在一个月中的几周返回 `NSNotFound`(iOS7 错误)

转载 作者:行者123 更新时间:2023-11-28 08:52:52 25 4
gpt4 key购买 nike

你好,我对 NSCalendarrangeOfUnit() 方法有疑问。我得到 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com