/ / Swift3: não é o tipo de resultado contextual esperado NSArray - swift3, nsarray, nssortdescriptor

Swift3: não o tipo de resultado contextual esperado NSArray - swift3, nsarray, nssortdescriptor

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 № 1

O 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.