【发布时间】:2015-08-19 12:19:34
【问题描述】:
试图获取数组的索引 ([AnyObject])。我缺少什么?
extension PageViewController : UIPageViewControllerDelegate {
func pageViewController(pageViewController: UIPageViewController, willTransitionToViewControllers pendingViewControllers: [AnyObject]) {
let controller: AnyObject? = pendingViewControllers.first as AnyObject?
self.nextIndex = self.viewControllers.indexOf(controller) as Int?
}
}
我在 Swift 1.2 中尝试过这种方法:
func indexOf<U: Equatable>(object: U) -> Int? {
for (idx, objectToCompare) in enumerate(self) {
if let to = objectToCompare as? U {
if object == to {
return idx
}
}
}
return nil
}
【问题讨论】:
-
也许换个方式试试,将
self.viewControllers转换为[UIViewController]? -
@Aderstedt:我收到了:
Cannot invoke 'indexOf' with an argument list of type '(AnyObject?)'。有什么想法吗? -
通常,错误消息中的问号很重要。
标签: ios arrays swift equatable