草庐IT

string - 在不使用 rawValue 的情况下访问枚举中的字符串值

我想用一个嵌套枚举替换我的全局字符串常量,用于访问数据库中的列。结构如下:enumDatabaseKeys{enumUser:String{caseTable="User"caseUsername="username"...}...}数据库中的每个表都是一个内部枚举,表的名称是枚举的标题。每个枚举中的第一个case将是表的名称,后面的case是其表中的列。要使用它,非常简单:myUser[DatabaseKeys.User.Username.rawValue]="Johnny"但我会大量使用这些枚举。必须将.rawValue附加到每个实例会很痛苦,而且它不像我希望的那样可读。如何在不使

string - 在不使用 rawValue 的情况下访问枚举中的字符串值

我想用一个嵌套枚举替换我的全局字符串常量,用于访问数据库中的列。结构如下:enumDatabaseKeys{enumUser:String{caseTable="User"caseUsername="username"...}...}数据库中的每个表都是一个内部枚举,表的名称是枚举的标题。每个枚举中的第一个case将是表的名称,后面的case是其表中的列。要使用它,非常简单:myUser[DatabaseKeys.User.Username.rawValue]="Johnny"但我会大量使用这些枚举。必须将.rawValue附加到每个实例会很痛苦,而且它不像我希望的那样可读。如何在不使

swift - 通过索引访问字符串枚举

我在C中有一个枚举,索引需要用字符串表示。整数索引如何使用字符串类型的Swift枚举?我想将枚举复制到Swift,将类型设置为字符串并定义所有原始值以显示文本,然后使用C枚举值提取SwiftString枚举的原始值文本。否则我只会创建一个字符串数组。但是枚举会更有用。 最佳答案 Swift4.2引入了CaseIterable,无需声明allValues数组即可执行完全相同的操作。它是这样工作的:enumMyEnum:String,CaseIterable{casefoo="fooString"casebar="barString"c

swift - 通过索引访问字符串枚举

我在C中有一个枚举,索引需要用字符串表示。整数索引如何使用字符串类型的Swift枚举?我想将枚举复制到Swift,将类型设置为字符串并定义所有原始值以显示文本,然后使用C枚举值提取SwiftString枚举的原始值文本。否则我只会创建一个字符串数组。但是枚举会更有用。 最佳答案 Swift4.2引入了CaseIterable,无需声明allValues数组即可执行完全相同的操作。它是这样工作的:enumMyEnum:String,CaseIterable{casefoo="fooString"casebar="barString"c

swift - 使用 NSLog 记录 Swift 枚举

我正在尝试记录一个枚举:enumCKAccountStatus:Int{caseCouldNotDeterminecaseAvailablecaseRestrictedcaseNoAccount}NSLog("%i",CKAccountStatus.Available)编译器提示:Type'CKAccountStatus'doesnotconformtoprotocol'CVarArg'为什么?我试图投值:NSLog("%i",CKAccountStatus.AvailableasInt)但这也不会飞:Cannotconverttheexpression'stype'()'totype

swift - 使用 NSLog 记录 Swift 枚举

我正在尝试记录一个枚举:enumCKAccountStatus:Int{caseCouldNotDeterminecaseAvailablecaseRestrictedcaseNoAccount}NSLog("%i",CKAccountStatus.Available)编译器提示:Type'CKAccountStatus'doesnotconformtoprotocol'CVarArg'为什么?我试图投值:NSLog("%i",CKAccountStatus.AvailableasInt)但这也不会飞:Cannotconverttheexpression'stype'()'totype

Swift 4 Decodable - 以枚举为键的字典

我的数据结构有一个枚举作为键,我希望下面的内容能够自动解码。这是错误还是某些配置问题?importFoundationenumAnEnum:String,Codable{caseenumValue}structAStruct:Codable{letdictionary:[AnEnum:String]}letjsonDict=["dictionary":["enumValue":"someString"]]letdata=try!JSONSerialization.data(withJSONObject:jsonDict,options:.prettyPrinted)letdecoder

Swift 4 Decodable - 以枚举为键的字典

我的数据结构有一个枚举作为键,我希望下面的内容能够自动解码。这是错误还是某些配置问题?importFoundationenumAnEnum:String,Codable{caseenumValue}structAStruct:Codable{letdictionary:[AnEnum:String]}letjsonDict=["dictionary":["enumValue":"someString"]]letdata=try!JSONSerialization.data(withJSONObject:jsonDict,options:.prettyPrinted)letdecoder

ios - 如何在 Swift 中为 SpriteKit 定义类别位掩码枚举?

要在Objective-C中定义类别位掩码枚举,我曾经键入:typedefNS_OPTIONS(NSUInteger,CollisionCategory){CollisionCategoryPlayerSpaceship=0,CollisionCategoryEnemySpaceship=1如何使用Swift实现相同的目的?我尝试了枚举,但无法正常工作。到目前为止,这是我尝试过的。 最佳答案 您可以使用二进制文字:0b1、0b10、0b100等然而,在Swift中你不能按位或枚举,所以在枚举中使用位掩码真的没有意义。查看thisqu

ios - 如何在 Swift 中为 SpriteKit 定义类别位掩码枚举?

要在Objective-C中定义类别位掩码枚举,我曾经键入:typedefNS_OPTIONS(NSUInteger,CollisionCategory){CollisionCategoryPlayerSpaceship=0,CollisionCategoryEnemySpaceship=1如何使用Swift实现相同的目的?我尝试了枚举,但无法正常工作。到目前为止,这是我尝试过的。 最佳答案 您可以使用二进制文字:0b1、0b10、0b100等然而,在Swift中你不能按位或枚举,所以在枚举中使用位掩码真的没有意义。查看thisqu