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

Could not cast value of type 'UIView' to 'NSArray'

如何获取 Nib 文件中的所有视图? 我正在尝试通过以下方式获取 Nib 中的所有视图:

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

虽然我收到这个错误:

Could not cast value of type 'UIView' (0x108080b40) to 'NSArray' (0x105173c58).

在此先感谢您的帮助。

loadNibNamed returns 类型数组 [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 {...}

选择能够解决您的错误的解决方案。