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