ios - swift 中的多个枚举值

标签 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

最佳答案

它不是一个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])

关于ios - swift 中的多个枚举值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35487403/

相关文章:

iphone - 如何使用iPhone SDK的GPS技术测量高程?

iPhone SDK : UIActionsheet Delegate Method not getting called

ios - 找不到 swift darwin 文档

ios - UIView 从顶部添加填充

swift - 当屏幕尺寸增加时,如何增加 UITableView 中自定义单元格的高度?

ios - SwiftUI:如何在条件 View 之间添加转换?

objective-c - 分配和初始化一个小的 UIImage 有多昂贵

ios - 致力于使 UICollectionView 中的单元格快速出队 - 在 cellForItemAt 中尝试重用单元格时出错

ios - 在 Swift 中使用 RLMResults 的正确方法是什么?

iphone - 应用启动时读取属性列表,关闭时写入的模式