Swift3:不是预期的上下文结果类型NSArray

时间:2017-01-05 03:02:44

标签: swift3 nsarray nssortdescriptor

我正在将我的代码从Swift 2.3迁移到Swift 3.在迁移之前它正常工作之前我面临的不是预期的上下文结果类型NSArray 这是我的代码

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

1 个答案:

答案 0 :(得分:1)

使用的方法的声明类型是func sortedArray(using sortDescriptors: [NSSortDescriptor]) -> [Any],这意味着结果被隐式转换为Swift数组。

试试这个:

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

这会阻止转换,并将结果保存为NSArray Objective C对象。