Estou migrando meu código do Swift 2.3 para o Swift 3. Antes de estar funcionando bem após a migração estou enfrentando o tipo de resultado contextual não esperado NSArray Aqui está meu código
func setConfirmedBookingsAfterSorting() {
if let bookings = ContentService.sharedInstance.confirmedBookings {
self.confirmedBookings = (bookings as NSArray).sortedArray(using: [NSSortDescriptor(key: "startTime", ascending: true)])
}
}
Respostas:
1 para resposta № 1O tipo declarado do método usado é func sortedArray(using sortDescriptors: [NSSortDescriptor]) -> [Any]
, o que significa que o resultado é convertido implicitamente em um array Swift.
Tente isto:
((bookings as NSArray).sortedArray(using: [NSSortDescriptor(key: "startTime", ascending: true)])) as NSArray
Isso impede a conversão e mantém o resultado como um NSArray
Objeto Objetivo C.