Swift: 无法下标“[UIViewController]”类型的值?

Swift: Cannot subscript a value of type '[UIViewController]?'

我正在尝试找出如何在 Xcode 7 (iOS9) 上解决 Swift 中的这个问题,我也遇到了这个错误:

Cannot subscript a value of type '[UIViewController]?' with an index of type 'Int'

任何建议表示赞赏。谢谢

我的代码:

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
}

尝试:

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 块中。