草庐IT

swift - 为什么 Swift 库使用 "enum CommandLine"而不是 "struct CommandLine"?

Swift标准库将CommandLine声明为枚举。///Command-lineargumentsforthecurrentprocess.publicenumCommandLine{///AccesstotherawargcvaluefromC.publicstaticvarargc:Int32{get}///AccesstotherawargvvaluefromC.Accessingtheargumentvector///throughthispointerisunsafe.publicstaticvarunsafeArgv:UnsafeMutablePointer?>{get}

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

swift - 如何在 Swift 中创建一个通用枚举 Equatable?

有一个通用枚举ResultenumResult{casesuccess(T)caseerror}如何使其符合EquatableSwift版本3或更高版本中的协议(protocol)?我试过以下方法:extensionResult:Equatable{staticfunc==(lhs:Result,rhs:Result)->Bool{switch(lhs,rhs){caselet(.success(lhsVal),.success(rhsVal)):returnlhsVal==rhsValcase(.error,.error):returntruedefault:returnfalse}

ios - 如何使用枚举简化并使其更好,快速学习,枚举

我正在通过以下方式定义一些范围letrange0_15=0..我真的很想通过尝试为此使用Enumenumrange:Range{range0_15=0..我得到一个错误Type'CoreDataStach.range'doesnotcomformtoprotocolRawRepresentable是否可以像上面那样定义一个枚举,如果可以,我在这里缺少什么。 最佳答案 像这样尝试:enumrangeEnum:Int{caserange0_15caserange15_30caserange30_45caserange45_60varra

ios - "Binary operator ' ~= ' cannot be applied to operands of type '

我已经集成了ObjectiveC框架以在我的Swift项目中使用。现在在我的ObjectiveC框架中我有一些Enumdecalredalraedye.g.enumLE_DEVICE_STATE{LE_DEVICE_STATE_DISCONNECTED=0,LE_DEVICE_STATE_CONNECTING,LE_DEVICE_STATE_CONNECTED,LE_DEVICE_STATE_UPDATING_FIRMWARE};但是现在当我尝试在switchcase中使用这个枚举时,它不允许我快速地抛出错误"Binaryoperator'~='cannotbeappliedtoope

swift - 将枚举类型的值与关联值进行比较时出现编译器错误?

classMyClass{enumMyEnum{caseFirstCasecaseSecondCase(Int)caseThirdCase}varstate:MyEnum!funcmyMethod(){ifstate!==MyEnum.FirstCase{//Dosomething}}}我得到指向if语句的编译器错误::Binaryoperator'=='cannotbeappliedtotwo'MyClass.MyEnum'operands如果相反,我使用switch语句,则没有问题:switchstate!{//Also,whydoIneed`!`ifstateisalreadya

ios - 枚举类型的开关大小写

我有一个问题,我希望对枚举类型(SearchFilterOptionType)执行switch-case,但由于某些原因Swift/Xcode编译器无法识别该成员。我有以下枚举:enumSearchFilterOptionType{caseCheckboxcaseSelectioncaseIntervalcaseText}而且我能够执行以下操作:ifdataElements[0].type==SearchFilterOptionType.Checkbox{return}但是如果我想用switch-case复制相同的内容,我会得到错误:"Enumcase'Checkbox'isnotam

swift - 无法分配给属性 : <Enum:case> is not settable

例如我们有简单的枚举publicenumCXActionSheetToolBarButtonItem{casecancelcasedonecasenowprivatestaticvartitles:[CXActionSheetToolBarButtonItem:String]=[.cancel:"Cancel",.done:"Done",.now:"Now",]publicvartitle:String{get{returnCXActionSheetToolBarButtonItem.titles[self]??String(describing:self)}//whatamIwant

swift - 是否可以从枚举方法内部更改枚举?

我在Swift中有一个枚举:enumOrientation:Int{caseRot_0=0,Rot_90,Rot_180,Rot_270我的枚举中的一个非静态方法旨在顺时针或逆时针移动方向:funcrotate(clockwise:Bool){varnextRawValue=self.rawValue+(clockwise?1:-1)ifnextRawValueOrientation.Rot_270.rawValue{nextRawValue=Orientation.Rot_0.rawValue}self=Orientation(rawValue:nextRawValue)}编译器告诉