无法将类型"UIView"的值转换为"NSArray"



如何在Nib文件中获得所有视图?我试图获得Nib内的所有视图:

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

虽然我得到这个错误:

无法将类型'UIView'的值转换为'NSArray' (0x108080b40)(0 x105173c58)。

提前感谢您的帮助。

loadNibNamed返回类型为[Any]?的数组,您使用[0]对其下标,意味着您正在访问数组的第一个对象。所以只要删除[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 {...}

最新更新