Swift:不能下标’类型的值吗?

我试图弄清楚如何在Xcode 7(iOS9)上的Swift中修复此问题,我也遇到此错误:

不能下标'[UIViewController]类型的值吗? 索引类型为’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块中。