我知道,枚举常数在swift中应该是这样的

enum CompassPoint {
    case North
    case South
    case East
    case West
}

但我如何为第一个元素赋值,比如下面的Objective-C代码

enum ShareButtonID : NSInteger
{
   ShareButtonIDFB = 100,
   ShareButtonIDTwitter,
   ShareButtonIDGoogleplus

}ShareButtonID;

推荐答案

你需要给枚举一个类型,然后设置值,在下面的例子中,North被设置为100,剩下的将是101102等等,就像CObjective-C一样.

enum CompassPoint: Int {
    case North = 100, South, East, West
}

let rawNorth = CompassPoint.North.rawValue // => 100
let rawSouth = CompassPoint.South.rawValue // => 101
// etc.

Update:将toRaw()替换为rawValue.

Swift相关问答推荐

如何更新Square Order?

在解码字符串时需要帮助.

字符串目录不适用于SWIFT包

如何在visionOS上删除PhotosPicker背景 colored颜色 ?

插入/删除视图时的Swiftui动态过渡

在Swift中如何用变量计算0.9的立方

在 Swift 中将异步任务包装到 DispatchWorkItem 中以使其可取消?

DispatchQueue.main.asyncAfter 等同于 Swift 中的 struct 化并发?

@Binding 在@StateObject 和 View 上被发布了两次?

SwiftUI:异步网络请求后@State 值不更新

在 Swift 中实现自定义异步序列

在 xcode 13 中的构建之间保持可访问性权限

如何使用 Date.ParseStrategy 在 Swift 5.6 中将字符串解析为日期?

AVPlayer 在 iOS 15.4 中寻求 completionHandler 返回 false

playground 导入:没有这样的模块Foo

Swift 中的 CommonHMAC

Alamofire:如何全局处理错误

如何使用 Swift 枚举作为字典键? (符合 Equatable)

<<错误类型>> 奇怪的错误

如何在 Swift 中从字符串创建类的实例