繁体   English   中英

快速的多个枚举值

[英]Multiple enum value in swift

我想创建一个枚举值

view.autoresizingMask = [UIViewAutoresizing.FlexibleBottomMargin, UIViewAutoresizing.FlexibleHeight]

我不知道要设计enum来接受多个变量。

我想设计以下。

enum ActivityType: Int {
    case Event = 1
    case CommentOnEvent = 2
    case CommentOnComment = 3
}
var activityType = [CommentOnEvent, CommentOnComment]

var activityType = Event

它不是一个enum ,而是一个符合OptionSetTypestruct 您可以按照以下模式创建一个:

struct AnimalTraits : OptionSetType {
    let rawValue: Int
    init(rawValue: Int) { self.rawValue = rawValue }

    static let LaysEggs = AnimalTraits(rawValue: 1)
    static let GivesLiveBirth = AnimalTraits(rawValue: 2)
    static let HasFur = AnimalTraits(rawValue: 4)
    static let HasScales = AnimalTraits(rawValue: 8)

    static let Mammal: AnimalTraits = [GivesLiveBirth, HasFur]
    static let Fish: AnimalTraits = [LaysEggs, HasScales]
}

然后,您可以像这样使用它:

struct Animal {
    let name: String
    let traits: AnimalTraits
}

let salmon = Animal(name: "Salmon", traits: .Fish)

salmon.traits.contains(.HasFur) //false
salmon.traits.contains(.HasScales) //true

let bizarro = Animal(name: "Fictional Animal", traits: [.LaysEggs, .GivesLiveBirth])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM