无法将 '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 {...}
选择能够解决您的错误的解决方案。
如何获取 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 {...}
选择能够解决您的错误的解决方案。