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
块中。
我正在尝试找出如何在 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
块中。