草庐IT

枚举法

全部标签

swift - 比较嵌套枚举

如果我有varcurrentState:TransformState=.DefaultenumTransformState{caseDefaultcaseError(ErrorState)enumErrorState{caseCustomcaseDefault}}varstate=TransformState.Error(.Custom)如何检查state==currentState? 最佳答案 你只需要为TransformState实现EquatableTransformState.ErrorState免费获取它,因此您可以在您的

swift - 如何使用单个 case 语句检查枚举值及其关联的枚举值?

请看下面的switch语句。我正在寻找一种更快捷的方法来执行测试;像这样的东西:caselet.b(other)where.x=other//Thisdoesnotcompile这可能吗?enumMyEnum{caseacaseb(MyOtherEnum)}enumMyOtherEnum{casexcasey}funccheck(value:MyEnum){switchvalue{caselet.b(other):ifcase.x=other{print("Gotit!")}default:break}} 最佳答案 如果您只对案例M

swift - 带有关联值的枚举 + 泛型 + 带有关联类型的协议(protocol)

我试图使我的API服务尽可能通用:API服务类classApiService{funcsend(request:RestRequest)->T{returnrequest.parse()}}以便编译器可以从请求类别.auth推断响应类型和.data:letapiService=ApiService()//StringletstringResponse=apiService.send(request:.auth(.signupWithFacebook(token:"9999999999999")))//IntletintResponse=apiService.send(request:.

ios - 如何在少数情况下包含额外属性的情况下创建枚举

我需要上传4个文件对象。很少有文件有日期,很少有文件有图像。我应该使用什么数据结构?我试图创建一个枚举enumFile:String,CaseIterable{casea="A"caseb="B"casec="C"cased="D"varsize:String//enumcannotcontainstoredproperties}我尝试创建一个结构structFile{varname:String//for4filesvarsize:String//onlyforAandBvarimage:UIImage//onlyforCandD} 最佳答案

ios - 将具有枚举值的 Swift 字典转换为 NSDictionary

如果我有一个类型为Dictionary的字典,我不知道如何将它转换为NSDictionary,所以我可以通过NSJSONSerialize.dataWithJSONObject将它序列化为JSON.编译器告诉我“DictionaryisnotconvertibletoNSDictionary”。我是否需要用枚举的字符串值创建一个新字典alavarnewDict=Dictionary(or);for(key,val)inoldDict{newDict[key]=val;}或者有更好的方法吗? 最佳答案 NSJSONSerialize和

swift - 如何为枚举关联值实现快速下标 setter

试图让以下工作:enumFoobar{casevalues([Int])casesingleThing(Double)subscript(index:Int)->Int?{get{switchself{case.values(letnumbers):returnnumbers[index]default:returnnil}}set{switchself{case.values(letnumbers):numbers[index]=newValue!default:break}}}}以上代码无法编译。当我用let分配给它时,它提示我正在更新numbers。所以我尝试用var替换let。

调用方法的 Swift 枚举

假设我有一个这样的枚举:enumItemType{caseTypeOnecaseTypeTwocaseTypeThree}然后我有一个方法可以根据所选的ItemType调用另一个方法:funcgetItem(withType:ItemType){switchwithType{caseTypeOne:getTypeOneItem()caseTypeTwo:getTypeTwoItem()caseTypeThree:getTypeThreeItem()}}我只是想知道是否有更好的写法,如果我有很多ItemTypesswitch语句会变得非常困惑。不确定是否可能,但也许是一个直接调用方法的e

ios - 在数组中查找枚举类型

如果我有这个枚举:enumTestEnum{casetypeAcasetypeB(Int)}和这个数组:lettestArray=[TestEnum.typeB(1),.typeA,.typeB(3)]是否有比以下更简单的方法来查找某个项目是否包含在该数组中:iftestArray.contains(where:{ifcase.typeA=$0{returntrue};returnfalse}){print("contained")}else{print("notfound")} 最佳答案 为了使其更具可读性,您可以像这样向您的枚举

ios - 如何通过 Swift 4 中的原始值获取枚举案例的名称?

使用Xcode9.4.1和Swift4.1有一个包含Int类型的多个案例的枚举,如何通过其rawValue打印案例名称?publicenumTestEnum:UInt16{caseONE=0x6E71caseTWO=0x0002caseTHREE=0x0000}我正在通过rawValue访问枚举:print("\nCommandType=0x"+String(format:"%02X",someObject.getTestEnum.rawValue))/*thisprints:CommandType=0x6E71ifthegivenIntegervaluefromsomeObject.

swift - 检查枚举是否可以从开关中的参数创建

我有一个类似...的枚举enumMyEnum{casea(Foo)casebcasec(Bar)enumFoo:String{caseonecasetwo}enumBar:String{casethreecasefour}}我正在尝试为此创建一个可失败的初始化函数,以便您可以像...一样调用它MyEnum(base:"a",parameter:"one")或MyEnum(base:"b",parameter:nil)我已经让它像这样工作了(但它很笨重)......init?(base:String,parameter:String?){switch(base,parameter){ca