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

3

看起来我们不能将Swift中的空var数组转换为Objective-C中的NSMutableArray

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

系统版本是iOS 11.0,Xcode 9.0。
我们该如何解决这个问题?

为什么你要在Swift中使用NSMutableArray?使用Swift数组即可。 - rmaddy
1
因为我想将它传递给Objc中的NSMutableArray属性。 - allenlinli
3个回答

6

请按照以下步骤进行:

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

3
在Swift 4中,您不能将空的Swift数组分配给NSMutableArray。但是,您可以构建新的NSMutableArray并将其分配到需要的位置。像下面这样:
BookDataManger.sharedInstance().arraySelectedAdultPassenager = NSMutableArray(array: adultTravelerModels)

2
您需要构造一个新的NSMutableArray实例。

1
抱歉,我选择了安德烈的答案作为正确答案,以便让新人有更多的机会 :) - allenlinli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接