首页 > 学院 > 开发设计 > 正文

Swift优雅的实现枚举的定义及使用

2019-11-14 18:15:42
字体:
来源:转载
供稿:网友

1、枚举是用来表示值的“类型”。


2、定义枚举类型“FamilyRelationshipType”

enum FamilyRelationshipType {    case GrandFather    case GrandMother    case Father    case Mother    case Brother    case Sister    case Son    case Daughter}

3、使用枚举,指定该成员与其他成员的关系:

struct FamilyMember {    var name: String    var relationshipType: FamilyRelationshipType        init(name: String, relationshipType: FamilyRelationshipType) {        self.name = name        self.relationshipType = relationshipType    }}let sister = FamilyMember(name: "Jacky", relationshipType: FamilyRelationshipType.Sister)let brother = FamilyMember(name: "Jack", relationshipType: FamilyRelationshipType

4、指定值定义枚举:

enum FamilyRelationshipType: Int {    case GrandFather = 400    case GrandMother = 500    case Father = 600    case Mother = 700    case Brother = 800    case Sister = 900    case Son = 1000    case Daugther = 1100}

5、Switch中使用枚举实例:

static func giftFor(member: FamilyMember) -> String {    switch (member.relationshipType) {    case .GrandFather:        return "Book"    case .GrandMother:        return "Sweater"    case .Father:        return "Shirt"    case .Mother:        return "Flowers"    default:        return "Choclates"    }}

6、Swift 中把每个枚举与它的值联合起来。

enum FamilyRelationshipType {    case GrandFather(age: Int)    case GrandMother(age: Int)    case Father(age: Int)    case Mother(age: Int)    case Husband(age: Int)    case Wife(age: Int)    case Brother(age: Int)    case Sister(age: Int)    case Son(age: Int)    case Daugther(age: Int)}

完整实例,根据家庭成员的年龄大小来决定具体的礼物:

enum FamilyRelationshipType {    case GrandFather(age: Int)    case GrandMother(age: Int)    case Father(age: Int)    case Mother(age: Int)    case Husband(age: Int)    case Wife(age: Int)    case Brother(age: Int)    case Sister(age: Int)    case Son(age: Int)    case Daugther(age: Int)        func gift() -> String {        switch(self) {        case .Brother(let age):            if age > 10 {                return "video games"            } else {                return "toys"            }        case .GrandFather:            return "Book"        case .GrandMother:            return "Sweater"        case .Father:            return "Shirt"        case .Mother:            return "Flowers"        default:            return "Choclates"        }    }}struct FamilyMember {    var name: String    var relationshipType: FamilyRelationshipType        init(name: String, relationshipType: FamilyRelationshipType) {        self.name = name        self.relationshipType = relationshipType    }}

至此完整的Swift下的枚举定义使用完成,顺便推荐一下个人ios开发小站http://www.iosask.com


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表