Swift 3型铸造错误

时间:2016-10-12 09:30:51

标签: ios swift swift3

我在swift 2.2中使用此代码正常工作

let arrayNib = Bundle.main.loadNibNamed("VehicleDetailsTableViewCell", owner: nil, options: nil) as! NSArray

在swift 3.0代码中给出了错误

  

无法转换[Any]的值?在强制中键入NSArray

4 个答案:

答案 0 :(得分:4)

试试这个

let arrayNib = Bundle.main.loadNibNamed("VehicleDetailsTableViewCell", owner: nil, options: nil)! as [Any]
print (arrayNib)

答案 1 :(得分:0)

我可以像

一样使用它
cellFilters : 'yourfiltername:"active"'

它给了我一些[Any?]。

答案 2 :(得分:0)

错误非常明确。

您尝试将Optional<T>转换为U

虽然T可投放到U,但Optional<T> 不是

如果您愿意,可以将Optional<T>投放到Optional<U>。 与您的[Any]?NSArray?一样。

但我强烈建议使用Swift数组并添加一些真实类型。

答案 3 :(得分:0)

看来,Swift中有一个新的数组类型用于新的API;这就是游乐场所说的:

enter image description here

我想一个后续问题是使用NSArray是否必不可少。