这是按 tableView 时间戳中的每个单元格对数组进行排序的代码。
self.ProjectsArray.sorted(by: { (project, project2) -> Bool in
return project.timestamp?.intValue < project2.timestamp?.intValue
})
有没有更好的方法来对数组进行排序?我做错了什么?
EDIT- 根据您的评论,您想要就地排序,所以我正在更新以就地排序。
您的时间戳变量是Optional
,所以你可能会比较nil
to nil
, or nil
to an Int
。您可以安全地解开它们并在其中一个为零的情况下提供排序顺序,或者您可以使用零合并运算符来处理nil
值作为一些默认的 Int,如 0。这两个选项如下所示:
可选的解包:
self.ProjectsArray.sort(by: { (project, project2) -> Bool in
if let timestamp1 = project.timestamp, let timestamp2 = project2.timestamp {
return timestamp1.intValue < timestamp2.intValue
} else {
//At least one of your timestamps is nil. You have to decide how to sort here.
return true
}
})
零合并运算符:
self.ProjectsArray.sort(by: { (project, project2) -> Bool in
//Treat nil values as 0s and sort accordingly
return (project.timestamp?.intValue ?? 0) < (project2.timestamp?.intValue ?? 0)
})
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)