Сортировать массив пользовательского словаря по ключу (общая функция Swift) - PullRequest
0 голосов
/ 13 февраля 2019

Я хочу отсортировать пользовательские class на основе определенного ключа.поэтому здесь я написал обобщенную функцию:

extension Array where Element == [String : Any] {
    func sort(byKey key: String) -> [Element] {
        return sorted(by: { $0[key] < $1[key] })
    }
}

Но это дает мне ошибку:

Двоичный оператор '<' нельзя применить к двум 'Any?'операнды </p>

Любая помощь?

Обновление

Вот модель class, которую я использую и сортирую по разным значениям.

//Added as per your suggestion.
extension ModelDirectoryInfo: Comparable {
    static func < (lhs: ModelDirectoryInfo, rhs: ModelDirectoryInfo) -> Bool {
        ///Error: Here again this is static
        //....
        return lhs.name < rhs.name
    }
}

struct ModelDirectoryInfo {

    let name: String
    let type: String
    let size: String
    let url: String
    let createDates: String
    let bytesize:String

    init(withDictionary dicValues: Dictionary<String, Any>) {
        self.name = dicValues["name"] as? String ?? ""
        self.type = dicValues["type"] as? String ?? ""
        self.size  = dicValues["size"] as? String ?? ""
        self.createDates = dicValues["createDate"] as? String ?? ""
        self.url = dicValues["url"] as? String ?? ""
        self.bytesize = dicValues["bytesize"] as? String ?? ""
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...