无法将 'Swift._EmptyArrayStorage' 类型的值转换为 iOS 11、Xcode 9 中的 'NSMutableArray'

Could not cast value of type 'Swift._EmptyArrayStorage' to 'NSMutableArray' in iOS 11, Xcode 9

看来我们无法将 Swift 中的空 var 数组转换为 Objective-C 中的 NSMutableArray

var adultTravelerModels: [TravelerDataModel] = []
BookDataManger.sharedInstance().arraySelectedAdultPassenager = adultTravelerModels as! NSMutableArray
/* (lldb) po adultTravelerModels
0 elements */

系统版本为iOS11.0,Xcode9.0.

我们如何解决这个问题?

您必须构造一个新的 NSMutableArray 实例。

这样做:

BookDataManger.sharedInstance().arraySelectedAdultPassenager = NSMutableArray(array: adultTravelerModels)

在Swift4中,不能将swift空数组赋给NSMutableArray。 但是你可以构造 new NSMutableArray 并分配给需要的地方。 如下图:

BookDataManger.sharedInstance().arraySelectedAdultPassenager = NSMutableArray(array: adultTravelerModels)