Я хочу отсортировать пользовательские 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 ?? ""
}
}