【swift3.0】【枚举定义的不同方式】

前端之家收集整理的这篇文章主要介绍了【swift3.0】【枚举定义的不同方式】前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

贡献作者 -【XJDomain】
博客XJ: https://my.oschina.net/shengbingli/blog
GitHub直播地址: https://github.com/lishengbing/XJDomainLive

XJ--01

> 定义字符串类型的枚举

enum kBackgroundImageNameType : String {
    // 蓝色<默认>
    case navBarBg_04BEC6 = "navBarBg_04BEC6"
    // 橘色
    case navBarBg_FFAB6D = "navBarBg_FFAB6D"
    // 灰色
    case navBarBg_E7E7E7 = "navBarBg_E7E7E7"
}

使用一:

kBackgroundImageNameType.navBarBg_04BEC6.rawValue

XJ--02

> 定义没有类型的枚举:

enum MethodType {
    case get
    case post
}

使用二:

let method = type == .get ? HTTPMethod.get : HTTPMethod.post

XJ--03

> 枚举的完美解析:

// 1:枚举类型的定义
enum MethodType {
    case get
    case post
    case put
    case delete
}

enum MethodType1 : String {
    case get = "get"
    case post = "post"
    case put = "put"
    case delete = "delete"
}

// 2:创建枚举具体的值
let type1 : MethodType = .get
let type2 = MethodType.post

// 3:给枚举类型进行赋值
//  如果枚举没有赋值的话是没有值的,不像oc中默认依次是0.1.2.3....
enum Direction : Int {
    case east = 0
    case west = 1
    case north = 2
    case south = 3
}

let d : Direction = .east
// 只有赋值才会有这种创建方式:可选类型
let d1 = Direction(rawValue: 1)


// 4:枚举类型定义方式二
enum Type  {
    case get,post,put,delete
}
// 只针对Int类型,会自动为0.1.2.3
enum Type1 : Int  {
    case get = 0,delete
}

let type111 = Type1(rawValue: 1)
print(type111)
原文链接:https://www.f2er.com/swift/322465.html

猜你在找的Swift相关文章