【发布时间】:2017-06-11 14:55:43
【问题描述】:
我在调用数组方法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
}
}
【问题讨论】: