您好
我有一个包含结构的字典,我需要根据时间值(NSDate)进行排序。
大多数结构都没有时间值,因此它们的时间值(NSDate?)将为nil(可选)。
我尝试的函数在尝试nil值时会崩溃。 如何使这个函数对值进行排序,而不是在尝试比较nil时崩溃?
AllBooks.SharedInstanse.browseBooks.sortInPlace(
{(
$0.0.shedueledTime!.compare(($0.1.shedueledTime)!) == NSComparisonResult.OrderedAscending
)
})
由于
答案 0 :(得分:1)
这取决于你想用零值做什么?
这将把它们全部放在开头:
let today = Date()
let a: [Date?] = [nil, today.addingTimeInterval(24*60*60), nil, today]
let b = a.sorted(by: { ($0 ?? Date(timeIntervalSince1970: 0)) < ($1 ?? Date(timeIntervalSince1970: 0))})
把它放进游乐场你可以玩它。要消除nil值,请在排序前使用flatmap。