- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要在 Swift 中比较两次并使用 NSComparisonResult 我可以获得正确的结果,直到晚上 10 点到晚上 11:59 之间的时间。这些时间显示相反的结果。任何人都知道这是什么问题?下面是示例代码和场景。下午 10:30:00 是示例测试时间,但您可以随时进行测试。
// For test, Current time 10:30:00 PM
let currentTime = NSDateFormatter.localizedStringFromDate(NSDate(), dateStyle: .NoStyle, timeStyle: .LongStyle)
let closeTimeCompareResult: NSComparisonResult = currentTime.compare("10:00:00 PM EDT")
print("DinnerClose: \(closeTimeCompareResult.rawValue)")
// Expected result is -1 but, getting as 1
// It works perfect until 9:59:59 PM
let closeTimeCompareResult9: NSComparisonResult = currentTime.compare("9:00:00 PM EDT")
print("DinnerClose: \(closeTimeCompareResult9.rawValue)")
// As expected result is -1
最佳答案
您正在执行字符串比较。因此,您正在比较这两个字符串,例如:
10:00:00 PM EDT
9:00:00 PM EDT
字符串比较比较每个字符串的相应字符,从每个字符串的第一个字符开始。 “10:00:00 PM EDT”
的第一个字符是“1”
,“9:00:00 PM EDT”
的第一个字符code> 是 "9"
。在 Unicode 和 ASCII 中,"9"
是代码点 57,"1"
是代码点 49。因为 57 > 49,"9"> "1"
,以及 “9:00:00 PM EDT”>“10:00:00 PM EDT”
。
您可能想从输入的日期中提取小时、分钟和秒,然后比较它们的数值。如果您已使用 Swift 2.2 升级到 Xcode 7.3,那么您可以使用 tuple comparison像这样:
let date = NSDate()
let components = NSCalendar.currentCalendar().components([.Hour, .Minute, .Second], fromDate: date)
let hms = (components.hour, components.minute, components.second)
if hms >= (21, 0, 0) && hms < (22, 30, 0) {
print("\(date) is between 9 PM and 10:30 PM in the system's time zone.")
}
关于ios - NSComparisonResult 在晚上 10 点及以上未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36213108/
在我的 iOS 应用程序中,我实现了一个来自核心数据的表格 View 和一个搜索栏。在当前状态下,搜索只显示以搜索字符串开头的字段,但我想要的是显示包含至少三个字符长度的搜索文本的字段。 这是我的搜索
我的应用程序正在比较发送到函数的请求字符串,例如 -(void)sendSearchRequest:(NSString *)request sport:(NSString *)sport locati
我将 NSComparisonResult 与我的 SearchController 一起使用: for (Annotation *ano in listContent) { NSCo
我使用 NSComparisonResult 搜索数组,但是当我使用 NSDiacriticInsensitiveSearch 时,它无法立即找到 å æ ø 等斯堪的纳维亚字母,但它可以找到 á 等
当我在搜索字段中输入两个以上的字符时会引发异常。我使用 NSComparisonResult 在 UITableView 上显示结果: - (void)filterContentForSearchTe
我需要在 Swift 中比较两次并使用 NSComparisonResult 我可以获得正确的结果,直到晚上 10 点到晚上 11:59 之间的时间。这些时间显示相反的结果。任何人都知道这是什么问题?
我有一个基于 Swift 的 iOS 应用程序。我正在尝试使用 Swift 排序方法之一按“createdAt”NSDate 属性对我的对象数组进行排序。 我的数组有一堆 PFObject - 这些对
什么是 NSComparisonResult 和 NSComparator? 我见过其中一种类型定义,类似这样: typedef NSComparisonResult (^NSComparator)(
我正在使用此代码在我的表格 View 中进行搜索: for (Actor *actorz in arr) { NSComparisonResult result = [actorz.
我正在使用此代码在我的表格 View 中进行搜索: for (Actor *actorz in arr) { NSComparisonResult result = [actorz.
我的目的是让从 "1927-2-2" 到 "1928-1-22" 的每个日期在输入 UIDatePicker 时都调用图像。我可以用除“1928-1-22”之外的每个日期成功调用图像,这是唯一不产生图
我正在尝试使用 NSComparisonResult 按特定顺序对我的数组进行排序。我无法弄清楚如何实现我想要的序列。 我正在尝试将表情符号置于顶部(表情符号的顺序无关紧要),然后是 A-Z 字母,在
我有一段代码对点的 NSMutableArray 进行排序,如下所示: [points sortUsingComparator:^NSComparisonResult (id firstObject,
NSDecimalNumber *no1 = [NSDecimalNumber decimalNumberWithString:[totalPotFund stringByReplacingOc
我有这个 distanceSorter.h/distanceSorter.m: @interface CLLocation (DistanceComparison) - (NSComparisonRe
我是一名优秀的程序员,十分优秀!