我在调用数组方法时遇到问题index(of:).
MyClass继承UIViewController并符合MyDelegate协议.
//self.viewControllers: [(UIViewController & MyDelegate)]
guard let myController = viewController as? MyClass,
let index = self.viewControllers.index(of: myController) else {return}
Run Code Online (Sandbox Code Playgroud)
然后我得到错误:
无法使用类型'(of:(UIViewController&MyDelegate))'的参数列表调用'index'
如何解决这个问题,是否有比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
}
}
Run Code Online (Sandbox Code Playgroud)