我想知道是否存在与Java的Enum.ordinal()方法等效的Swift。 最佳答案 您可以使用rawValue访问用Int标记的枚举的序数值。enumSomeEnum:Int{casefirstcasesecondcasethirdcasefourth}print(SomeEnum.third.rawValue)//2 关于java-Swift相当于Java中的Enum.ordinal(),我们在StackOverflow上找到一个类似的问题: http
我有一个在Objective-C中看起来像这样的错误NSString*constJKConfigurationErrorDomain;typedefNS_ENUM(NSInteger,JKConfigurationCode){JKConfigurationCodeUnknown,JKConfigurationCodeSomethingBad,JKConfigurationCodeParsing,};现在,这在Swift中使用起来很丑陋。但自Swift4以来,wecanuseNSErrorDomainandNS_ERROR_ENUM在Swift中使导入的错误更好:NSErrorDomai
我创建了一个字符串类型的枚举。它有两个初始化方法。一种是使用rawValue的默认init方法,另一种是使用intValue的自定义init方法。我是这样写的。有什么简单的方法可以不使用两个switchcase吗?enumRoman:String{caseI,V,X,L,C,D,MvarintValue:Int{switchself{case.I:return1//...}}init?(intValue:Int){switchintValue{case1:self=.I//...default:returnnil}}}//RomantoIntletnumber="XXI".revers
我想用WallType创建SKSpriteNodes(请参阅下面的代码),并且只有WallType是.Corner通过它是其方向的Side值。枚举具有原始值,因为我需要将它们作为数字从plist加载并能够随机创建它们。enumSide:Int{caseLeft=0,Right}enumWallType:Int{caseStraight=0caseCorner(orientation:Side)}我收到错误:“原始类型的枚举不能有带参数的案例”是否有一种变通方法可以让SKSpriteNode仅在WallType为.Corner时为其方向传递一个值?目前我每次都用方向值初始化它,即使它不是
下面,我有用于tinder风格动画效果的objective-c代码,灵感来自-https://github.com/ngutman/TinderLikeAnimations/tree/master/TinderLikeAnimations.objective-ctypedefNS_ENUM(NSUInteger,GGOverlayViewMode){GGOverlayViewModeLeft,GGOverlayViewModeRight};-(void)setMode:(GGOverlayViewMode)mode{if(_mode==mode)return;_mode=mode;if
我有一个递归枚举,其中大多数情况具有相同类型的关联值:indirectenumLocation{caseTitle(String?)caseRegion(Location)caseArea(Location,Location)caseCity(Location,Location)caseSettlement(Location,Location)caseStreet(Location,Location)caseHouse(Location,Location)}我想做的是形成一个漂亮的字符串描述,其中将包括所有非零标题。funcgetStringFromLocation(location:
在我的singleton类中,我有一个swift枚举:importUIKitenumUserType{caseterant//casenormalUser//casenormalUserFinancialer//}@objc(UserStaticSwift)classUserStaticSwift:NSObject,NSCoding{报告的错误:使用控制台日志:libc++abi.dylib:terminatingwithuncaughtexceptionoftypeNSException在编码中:funcencode(withaCoder:NSCoder){aCoder.encode
我有一个这样的枚举:enumAnimals{caseCow(MyCowClass)caseBird(MyBirdClass)casePig(MyPigClass)caseChicken(MyChickenClass)}每种类型都符合哈希协议(protocol)。然后这个枚举成为另一个类的属性:classFarm{letname="Bob'sFarm"varanimal=Animalsrequiredinit(animal:Animals){self.animal=animal}我想从案例实例中获取散列值并将其用于枚举,这样我就可以使用名称和动物使Farm类可散列。
我很快就得到了这个错误'BlockColor'cannotbeconstructedbecauseithasnoaccessibleinitializersimportFoundationimportSpriteKitletNumberOfColors:UInt32=6enumBlockColor:Int,Printable{caseBlue=0,Orange,Purple,Red,Teal,YellowvarspriteName:String{switchself{case.Blue:return"blue"case.Orange:return"orange"case.Purple:
我在访问通过枚举传递的参数时遇到了一些问题。通用RequestType,更多会被包含enumRequestType{caseflagging(api:FlaggingRequestType)}这是我的枚举,它接受另一个FlaggingRequestType(另一个接受字符串参数的枚举)enumFlaggingRequestType{casegetFlag(api:String)}protocolRequestable{varrequestType:RequestType{getset}}在这里我构建了我的标记请求letflaggingRequest=RequestBuilder.bui