在Swift 3中对包含日期的字符串数组进行排序?

时间:2017-07-30 19:10:52

标签: ios arrays swift

我目前有一个元组数组,其第一个值是Double类型,第二个值类型为"MM/dd/yy"。第一个值包含日期,格式为Date

由于我的代码存在冲突,我没有使用MM个对象。

由于[("07/30/17", 5.0), ("08/30/17", 9.0), ("05/30/17", 5.0), ("05/28/17", 6.0)] ,我无法按字符串降序排列此数组(从最近到最旧)。

例如,我的数组包含以下内容:

tupleArray = tupleArray.sort( {$0.0 > $1.0} )

调用[("08/30/17", 9.0), ("07/30/17", 5.0), ("05/30/17", 5.0), ("05/28/17", 6.0)] 会产生以下结果:

String

按预期工作。

但是,如果我添加"08/30/16"条目[("08/30/17", 9.0), ("08/30/16", 30.0), ("07/30/17", 5.0), ("05/30/17", 5.0), ("05/28/17", 6.0)] ,则调用相同的排序函数会产生以下结果:

"08/30/16"

16在第二个索引中应该是最后一个索引,因为17年比[{1}}更早。

我看了看:

  1. (Swift 3) Trying to sort an array of class objects by Date in swift 3?

  2. Sort Objects in Array by date

  3. 我做错了什么?

    谢谢!

2 个答案:

答案 0 :(得分:2)

{{1}}

答案 1 :(得分:0)

我建议您创建一个Object作为属性的StringDouble。并且您可以将Data作为计算属性创建,该属性将在String值上计算。并使用Date计算属性进行排序。

我确信这会让您的生活更轻松,并将您的代码从元组重新编写为对象。稍后在排序字符串时很难找到错误。我确定你的第一个案例是数组中有3个元组只是巧合,它以正确的方式排序(这是猜测) ..