Swift 如何获取Array中的index并转为int类型

任务描述

我们有个枚举enum类型,我们希望获取任意一个元素的位置。
要实现这个目标我们需要解决下面几个问题

  • 如何若得enum类型的所有元素的数组
  • 如何若得数组中每个元素的Index
  • optional(int) 如何转化为Int

解决方案

查文档可知:

  • enum类型可以使用 allCases属性获取元素合集
  • Array可以使用firstIndex(of:)获取位置
  • 通过!将optional转为具体类型

实现代码

import SwiftUI

enum PickedColor: CaseIterable {
  case black, blue, green, orange, red, yellow
  
  var color: Color {
    return Color(uiColor)
  }
  
  var uiColor: UIColor {
    switch self {
    case .black:
      return UIColor(named: "Black")!
    case .blue:
      return UIColor(named: "Blue")!
    case .green:
      return UIColor(named: "Green")!
    case .orange:
      return UIColor(named: "Orange")!
    case .red:
      return UIColor(named: "Red")!
    case .yellow:
      return UIColor(named: "Yellow")!
    }
  }
}

PickedColor.allCases
let t = PickedColor.allCases.firstIndex(of: PickedColor.black)
type(of: t)
let b=t!
type(of: b)

欢迎加我QQ。

QQ:3365059189
SwiftUI技术交流QQ群:518696470

欢迎关注我专栏

请关注我的专栏icloudend, SwiftUI教程与源码
https://www.jianshu.com/c/7b3e3b671970

推荐阅读更多精彩内容