[英]Swift how to find an object in array of AnyObject
我想在我的NavigationController中获取当前ViewController的索引。
问题是navigationController.viewControllers的类型为AnyObject,现在出现错误无法使用类型为(AnyObject,UIViewController)的参数列表调用'find'。
func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
var index = find(navigationController.viewControllers, viewController)
}
如何解决此问题,如何在AnyObject数组中获取索引?
发生此问题的原因是find
函数不知道如何将AnyObject
与UIViewViewController
进行比较。 即使navigationController.viewControllers
的[AnyObjects]
数组除UIViewController
实例外不应包含任何内容,编译器也不知道。 我们可以通过将数组(使用as!
)转换为[UIViewController]
。
func navigationController(navigationController: UINavigationController, willShowViewController viewController: UIViewController, animated: Bool) {
var index = find(navigationController.viewControllers as! [UIViewController], viewController)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.