0
私はプロジェクトでインデックステーブルを表示する必要がある状況があります。だから、私はセクションヘッダータイトルとインデックスのための動的配列を作成しています。私は配列を作成しましたが、この配列を並べ替えることができません。私はこのような1つのオブジェクトを持っています:配列のソートがソートされない、ソート関数の後に型が変更される
struct StorageData {
var id: String?
var version: Int?
var downloadDate: Date?
var legId: String?
var packageId: String?
}
そして、私はサーバからこれの配列を取得しています。だから私は2つの配列を作成しました。
var tableViewSource = [Character : [StorageData]]()
var tableViewHeaders = [Character]()
と、この文によってこれらの配列を埋めるためにしよう:
func getTableData(words: [StorageData]) {
tableViewSource = createTableData(wordList: words).source
tableViewHeaders = createTableData(wordList: words).firstSymbols
}
func createTableData(wordList: [StorageData]) -> (firstSymbols: [Character], source: [Character : [StorageData]]) {
// Build Character Set
var firstSymbols = Set<Character>()
func getFirstSymbol(word: String) -> Character {
return word[word.startIndex]
}
wordList.forEach {_ = firstSymbols.insert(getFirstSymbol(word: $0.name!)) }
// Build tableSourse array
var tableViewSource = [Character : [StorageData]]()
let sortedSymbols = firstSymbols.sorted(by: {$0 < $1})
for symbol in sortedSymbols {
var words = [StoragePersonal]()
for word in wordList {
let data = word.name
if symbol == getFirstSymbol(word: data!) {
words.append(word)
}
}
tableViewSource[symbol] = words.sorted(by: {$0.name! < $1.name!})
}
return (sortedSymbols, tableViewSource)
}
が、tableViewSource
内のデータがソートされていない来ています。