Swift 4-Dictionary,如何定义静态函数的用法?

时间:2019-03-04 10:14:12

标签: swift

我在Internet上找到了词典的示例,可以帮助我制作Tableview的各个部分。现在我的问题是对这些部分进行排序。

字典的结构如下:

struct TableSection<SectionItem : Comparable&Hashable, RowItem> : Comparable {

var sectionItem : SectionItem

var rowItems : [RowItem]

 static func < (lhs: TableSection, rhs: TableSection) -> Bool {


     return lhs.sectionItem < rhs.sectionItem


}

static func == (lhs: TableSection, rhs: TableSection) -> Bool {
    return lhs.sectionItem == rhs.sectionItem
}

static func group(rowItems : [RowItem], by criteria : (RowItem) -> SectionItem ) -> [TableSection<SectionItem, RowItem>] {
    let groups = Dictionary(grouping: rowItems, by: criteria)

    return groups.map(TableSection.init(sectionItem:rowItems:)).sorted()
}

}

问题是,我无法将静态功能<更改为日期。我希望能够仅排序日期的字符串,而不是其他字符串。

如果我更改

     static func < (lhs: TableSection, rhs: TableSection) -> Bool {


      return lhs.sectionItem < rhs.sectionItem


     }

至:

       static func < (lhs: TableSection, rhs: TableSection) -> Bool {

       // here is die Change , from < to >
      return lhs.sectionItem > rhs.sectionItem


     }

在Viewcontroller中:

var sections = [TableSection<String,Class_PLA>]()

以及在重写func viewDidLoad()方法中

self.sections = TableSection.group(rowItems: CurrentPLAs, by: { (pla) -> (String) in

        return pla.Date
    })

日期采用以下格式: 例如2019_02_03_20_22_22 在另一种方法中,我使用以下命令:

  self.sections = TableSection.group(rowItems: CurrentPLAs, by: { (pla) -> (String) in

        return pla.Number
    })

,这个数字也是字符串。

它完美运行,但对所有人而言。我需要在这里确定条件以进行不同的排序。因为在Numbers中可以,它们从0-> 9排序,但是对于日期,它们没有按我想要的排序

有任何想法吗?

非常感谢您:)

0 个答案:

没有答案