【发布时间】:2015-09-15 19:49:34
【问题描述】:
感谢您阅读我的帖子。
我有一个这样声明的元组数组:
var myArray: [(item1: String?, item2: NSDate?)] = []
在循环结束时,我想根据每个元组的 item2 对元组数组进行排序,其类型为 NSDate?。
基于此answer 和this answer,我尝试了以下操作,但收到此编译器错误"cannot invoke 'sort' with an argument list of type '((_,_) -> _)'。
这是我尝试过的:
myArray.sort {$0.1.item2?.compare($1.1.item2?) == NSComparisonResult.OrderedDescending }
附: println() 工作正常并将 item1 和 item2 作为可选打印。
【问题讨论】:
-
在数据结构中使用元组不是一个好习惯,而是使用数组或字典。来自 Apple Swift iBook:“元组对于相关值的临时组很有用。它们不适合创建复杂的数据结构。 如果您的数据结构可能在临时范围之外持续存在,请将其建模为类或结构,而不是元组。” 摘自:Apple Inc. “Swift 编程语言(Swift 2 Prerelease )。”电子书。 itun.es/us/k5SW7.l
标签: ios arrays swift sorting nsdate