/ / Swift3: nie oczekiwany typ wyniku kontekstowego NSArray - swift3, nsarray, nssortdescriptor

Swift3: nie oczekiwany kontekstowy typ wyniku NSArray - swift3, nsarray, nssortdescriptor

Migruję swój kod z Swift 2.3 do Swift 3. Zanim po migracji działał dobrze, mam do czynienia z nieoczekiwanym typem wyniku kontekstowego NSArray Oto mój kod

func setConfirmedBookingsAfterSorting() {
if let bookings =  ContentService.sharedInstance.confirmedBookings {
self.confirmedBookings = (bookings as NSArray).sortedArray(using: [NSSortDescriptor(key: "startTime", ascending: true)])
}
}

Odpowiedzi:

1 dla odpowiedzi № 1

Deklarowany typ zastosowanej metody to func sortedArray(using sortDescriptors: [NSSortDescriptor]) -> [Any], co oznacza, że ​​wynik jest domyślnie konwertowany na tablicę Swift.

Spróbuj tego:

((bookings as NSArray).sortedArray(using: [NSSortDescriptor(key: "startTime", ascending: true)])) as NSArray

Zapobiega to konwersji i zachowuje wynik jako NSArray Obiekt celu C.