我正在将我的代码从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)])
}
}
答案 0 :(得分:1)
使用的方法的声明类型是func sortedArray(using sortDescriptors: [NSSortDescriptor]) -> [Any]
,这意味着结果被隐式转换为Swift数组。
试试这个:
((bookings as NSArray).sortedArray(using: [NSSortDescriptor(key: "startTime", ascending: true)])) as NSArray
这会阻止转换,并将结果保存为NSArray
Objective C对象。