获取数组元素的索引为Int

时间:2017-12-05 23:28:21

标签: ios arrays swift uiviewcontroller

我的协议中有一个UIViewController数组

var viewControllers: [MyViewController] { get }

我想获取具有特定ViewController的项目索引

let idfx = viewModel.viewControllers.index(of: viewController as! MyViewController)

idfx的类型为Array.index

如何将数组元素的索引作为Int?

2 个答案:

答案 0 :(得分:6)

问题不在于它是Array.index类型,这是Int的类型,正如Nonuld所说的那样。问题是它是可选的。你需要以某种方式打开可选项。一种方法是使用"如果让"可选绑定:

if let idfx = viewModel.viewControllers.index(of: viewController as! MyViewController) {
  print("view controller found at index \(idfx)") 
} else {
  print("View controller not found in array")
}

答案 1 :(得分:0)

实际上类型为Array.Index is a typealias to the type Int,因此您可以执行相同的操作,就好像您有一个带有方法index(of:)结果的整数。