Не удалось отсортировать данные табличного представления в порядке возрастания - PullRequest
0 голосов
/ 12 апреля 2019

У меня есть табличное представление, которое будет заполнять некоторые данные. Теперь мне нужно отсортировать данные табличного представления в порядке возрастания.

var SearchedobjectArray = [Objects]()

struct Objects {
    var looId : String!
    var looName : String
    var looImageUrl:String!
    var looCategoryType:String!
}

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    if let cell = tableView.dequeueReusableCell(withIdentifier:"cell", for: indexPath) as? MyLooCell{
        cell.looImage.setShowActivityIndicator(true)
        cell.looImage.setIndicatorStyle(.gray)
        let imageURL = SearchedobjectArray[indexPath.row].looImageUrl

        if (imageURL?.isEmpty)! {
            let imageUrl = self.getDefaultImageForCategory(categoryName: SearchedobjectArray[indexPath.row].looCategoryType)
            cell.looImage.image = UIImage(named: imageUrl)
        } else {
            cell.looImage.sd_setImage(with: URL(string: SearchedobjectArray[indexPath.row].looImageUrl))
        }
        cell.looName.text = SearchedobjectArray[indexPath.row].looName
        let looCatType = SearchedobjectArray[indexPath.row].looCategoryType
    } else {
        return UITableViewCell()
    }
}

Я пробовал с: let array = SearchedobjectArray.sorted(by: )

Но я не уверен, как мне отсортировать эти данные в порядке возрастания a to z. Я пробовал с другими sorted() также, но не смог достичь.

Ответы [ 2 ]

1 голос
/ 12 апреля 2019

Когда данные извлекаются в массив, вы можете просто отсортировать массив на основе looName, используя следующий код.

SearchedobjectArray = SearchedobjectArray.sorted(by: { $0.looName > $1.looName})
tableView.reloadData()
0 голосов
/ 12 апреля 2019

Вам нужно отсортировать массив объектов, а затем tableView.reloadData(). Вот пример того, как отсортировать ваш массив на игровой площадке:

import Cocoa

struct Objects {
    var looId : String!
    var looName : String
    var looImageUrl:String!
    var looCategoryType:String!
}

var SearchedobjectArray = [Objects]()

let c = Objects(looId: "Chase", looName: "Chase", looImageUrl: "Chase", looCategoryType: "Chase")
SearchedobjectArray.append(c)

let b = Objects(looId: "Bree", looName: "Bree", looImageUrl: "Bree", looCategoryType: "Bree")
SearchedobjectArray.append(b)

let a = Objects(looId: "Adam", looName: "Adam", looImageUrl: "Adam", looCategoryType: "Adam")
SearchedobjectArray.append(a)

print("Before sorting")
print(SearchedobjectArray)

// The real sorting is happening here...I guessed you wanted to sort by looName
SearchedobjectArray = SearchedobjectArray.sorted(by: { $0.looName < $1.looName })
print("After sorting")
print(SearchedobjectArray)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...