·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> app软件开发 >> IOS开发 >> Swift优雅的实现枚举的定义及使用

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

作者:佚名      IOS开发编辑:admin      更新时间:2022-07-23

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