Estoy tratando de ordenar una matriz rápidamente del tipo 'ObjCClass', que es una clase objetiva c. 'ObjCClass' tiene la propiedad 'nombre' que es opcional de tipo String. Quiero ordenar los objetos en la matriz en orden ascendente según la propiedad 'nombre'. ¿Cómo puedo hacer esto sin forzar el desenvolvimiento?
He intentado usar esto:
var sortedArray = unsortedArray.sorted(by: { $0.name as String! < $1.name as String!})He estado tratando de usar las sentencias guard y if/let para verificar si la propiedad 'nombre' existe, pero sigo teniendo errores porque no creo que lo esté haciendo correctamente. ¿Cómo puedo verificar si la propiedad existe para cada objeto en la matriz y luego hacer la clasificación?
Primero filtre las entradas no deseadas, luego compare el name con un desenvolvimiento forzado
var sortedArray = unsortedArray .filter { $0.name != nil } .sorted { $0.name! < $1.name! }NOTA:
filter elimina los casos nil , y en el momento en que llegamos a sorted , el name debe estar presente