Swift:不能下标类型' [UIViewController]的值?'

时间:2015-06-16 22:01:00

标签: ios swift uiviewcontroller

我想弄清楚如何在Xcode 7(iOS9)上的Swift中解决这个问题,我也遇到了这个错误:

  

无法下标类型' [UIViewController]的值?'索引类型为' Int'

任何建议都表示赞赏。感谢。

enter image description here

我的代码:

func indexPositionForCurrentPage(pageViewController: UIPageViewController) -> Int {

    let currentViewController = pageViewController.viewControllers[0] as UIViewController

    for (index, page) in pages.enumerate() {
        if (currentViewController == page) {

            return index
        }
    }

    return -1
}

1 个答案:

答案 0 :(得分:8)

尝试:

let currentViewController = pageViewController.viewControllers![0]

但是写一下会更安全:

if let currentViewController = pageViewController.viewControllers?[0] {
    // ... and then do everything else in the if-block
end

另一种选择:

guard let currentViewController = pageViewController.viewControllers?[0] else { 
    return 
}
// ... and then just proceed to use currentViewController here

这样做的好处是它安全,但不需要将函数的其余部分放在if块中。