我在调用数组方法时遇到问题index(of:)
。
MyClass
继承自UIViewController
并符合MyDelegate
协议。
//self.viewControllers: [(UIViewController & MyDelegate)]
guard let myController = viewController as? MyClass,
let index = self.viewControllers.index(of: myController) else {return}
然后我得到错误:
无法使用类型为“(的:(UIViewController & MyDelegate))”的参数列表调用“索引”
我该如何解决这个问题,有没有比index(of:)
在扩展中实现更好的解决方案?
extension Array where Element == (UIViewController & MyDelegate) {
func index(of: Element) -> Int? {
for i in 0..<self.count {
if self[i] == of {
return i
}
}
return nil
}
}