使用NSLog记录一个Swift枚举

我正在尝试记录一个枚举:
enum CKAccountStatus : Int {
    case CouldNotDetermine
    case Available
    case Restricted
    case NoAccount
}

NSLog("%i",CKAccountStatus.Available)

编译器抱怨:

Type 'CKAccountStatus' does not conform to protocol 'CVararg'

为什么?我试图铸造价值:

NSLog("%i",CKAccountStatus.Available as Int)

但这不是飞行的:

Cannot convert the expression's type '()' to type 'String'
获取枚举的底层Int值:CKAccountStatus.Available.rawValue。

枚举在Swift中不是严格的整数,但是如果它们被声明为底层类型,则可以使用rawValue获取它 – 无论底层类型是什么。 (枚举Foo:String将为rawValue提供字符串等)如果枚举没有底层类型,那么rawValue就没有什么可以给你的。在从ObjC导入的API中,使用NS_ENUM定义的任何枚举都有一个底层整数类型(通常为Int)。

如果您想更具体地列出任何枚举,您可以考虑在采用可打印协议的枚举类型上进行扩展。

相关文章

软件简介:蓝湖辅助工具,减少移动端开发中控件属性的复制和粘...
现实生活中,我们听到的声音都是时间连续的,我们称为这种信...
前言最近在B站上看到一个漂亮的仙女姐姐跳舞视频,循环看了亿...
【Android App】实战项目之仿抖音的短视频分享App(附源码和...
前言这一篇博客应该是我花时间最多的一次了,从2022年1月底至...
因为我既对接过session、cookie,也对接过JWT,今年因为工作...