swift中的多个枚举值

时间:2016-02-18 16:43:01

标签: ios swift cocoa-touch enums

我想创建一个像

这样的枚举值
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

1 个答案:

答案 0 :(得分:2)

这不是enum,而是符合struct的{​​{1}}。您可以按照以下模式创建一个:

OptionSetType

然后你可以像这样使用它:

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]
}