小编Joh*_*ese的帖子

Swift 4无法使用类型的参数列表调用'index'

我在调用数组方法时遇到问题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)

arrays swift swift4

7
推荐指数
1
解决办法
3869
查看次数

标签 统计

arrays ×1

swift ×1

swift4 ×1