无法施放类型的价值' UIView'到了NSArray'

时间:2016-10-07 07:19:53

标签: swift nsarray swift3 xcode8 loadnibnamed

如何获取Nib文件中的所有视图? 我试图通过Nib获取所有观看次数:

   let objects = Bundle.main.loadNibNamed("ViewName", owner: self, options: nil)?[0]  as! NSArray
   let mainView : UIView = objects[0] as! UIView

虽然我收到了此错误:

  

无法投放类型的价值' UIView' (0x108080b40)到NSArray'    (0x105173c58)。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

loadNibNamed返回类型为[Any]?的数组,您使用[0]下标它,意味着您正在访问Array的第一个对象。所以只需删除[0]即可。

let objects = Bundle.main.loadNibNamed("ViewName", owner: self, options: nil)

第二个选项,您可以直接初始化UIView对象。

if let mainView : UIView = Bundle.main.loadNibNamed("ViewName", owner: self, options: nil)?[0] as? UIView {...}

选择哪种解决方案可以解决您的错误。