Swift标准库将CommandLine声明为枚举。///Command-lineargumentsforthecurrentprocess.publicenumCommandLine{///AccesstotherawargcvaluefromC.publicstaticvarargc:Int32{get}///AccesstotherawargvvaluefromC.Accessingtheargumentvector///throughthispointerisunsafe.publicstaticvarunsafeArgv:UnsafeMutablePointer?>{get}
例如我们有简单的枚举publicenumCXActionSheetToolBarButtonItem{casecancelcasedonecasenowprivatestaticvartitles:[CXActionSheetToolBarButtonItem:String]=[.cancel:"Cancel",.done:"Done",.now:"Now",]publicvartitle:String{get{returnCXActionSheetToolBarButtonItem.titles[self]??String(describing:self)}//whatamIwant
这是一个带有关联值的常见枚举。enumMultiplierType{casewidth(Double)caseheight(Double)casexxxxx1(Double)casexxxxx2(Double)casexxxxx3(Double)varvalue:Double{switchself{//Normalway.caselet.width(value):returnvaluecaselet.height(value):returnvaluecaselet.xxxxx1(value):returnvalue...}}}我的问题是如何做到这一点?varvalue:Double{s
如何将枚举大小写的值保存到UserDefaults?我试过但没有运气。我检查了多个站点,包括这个站点,但没有运气,它们都在Swift2或Objective-c中,我根本无法翻译。 最佳答案 使用符合属性列表的原始值创建枚举,例如IntenumExampleEnum:Int{casedefault1casedefault2casedefault3}隐式地第一种情况是0,第二种情况是1等等。现在您可以将(原始)值保存在UserDefaultsUserDefaults.standard.set(currentDefaultType.raw
我有一个Objective-C文件,其中的枚举定义如下:typedefNS_ENUM(NSInteger,State){State_ACTIVE=0,State_PENDING=1,State_CANCELED=2};在我的swift代码中,如果我执行letstate=State(rawValue:100),通常这应该返回nil,因为它是一个可失败的初始化程序。然而,当枚举被这样声明时(使用NS_ENUM),初始化成功,并且没有迹象表明这是一个无效的枚举值。这是Xcode中的错误,还是按预期工作? 最佳答案 这是预期的行为。对于桥接
比如说,我有一堆对象。我想根据形状或颜色过滤它们。形状可以是正方形或三角形enumShape{caseSquare,Triangle}颜色可能是红色或绿色enumColor{caseRed,Green}我想要的是一个如下的方法,它接受一个过滤器数组,可以是Shape或Color,或者两者兼而有之。funcapply(_filters:[Filter]){forfilterinfilters{ifit'saShapefilter,applythatifit'saColorfilter,applythat}}然后我可以按如下方式填充数组并将其传递给上面的方法:letfilters=[Sha
我有一个代表线宽的枚举,它可以是恒定宽度,也可以是相对于它所在View大小的宽度。enumThickness{caseConstant(Float)//wherevalue≥0caseRelative(Float)//where0≤value≤1}有没有办法将这些关联的值约束构建到枚举类型中?我目前正在对这种类型的属性使用didSet属性观察器:varlineThickness:Thickness{didSet{switchlineThickness{caselet.Relative(x):lineThickness=.Relative(min(max(x,0),1))caselet.
我正在重构这个“Swift-Tac-Toe”tutorial中的一些代码.我的目标是创建几个枚举来模拟Tic-Tac-Toe棋盘,而不是依赖与游戏棋盘方block对应的“魔数(MagicNumber)”整数。我有一个对应于具有原始Int值的每个图block:enumTileLocation:Int{caseTopLeft=1,TopMiddle=2,TopRight=3,MiddleLeft=4,Center=5,MiddleRight=6,BottomLeft=7,BottomMiddle=8,BottomRight=9}我想创建一个TileRow枚举,它表示代表“三合一”胜利条件的
我有一个Swiftenum定义如下:@objcenumSomeEnum:Int{caseone,two}我可以使用SomeEnum通常在Objetive-C文件中,但是当我想在头文件中声明一个属性时,如下所示:@property(nonatomic,assign)SomeEnumsomeEnum;编译器给出错误信息Unknowntypename'SomeEnum'.有趣的是,我可以在类的私有(private)接口(interface)中创建一个属性。我也尝试清理构建文件夹,但没有帮助。文件-Swift.h已导入.pch文件。您知道问题的根源是什么吗? 最佳答
这是我的枚举:enumObject:Int{caseHouse1=0caseHouse2=1vardescriptor:String{switchself{case.House1:return"Cottage"case.House2:return"House"}}}我想知道如果我提供描述符的值,是否有办法让rawValue返回?例如,如果我的字符串是“Cottage”,我想知道枚举值(它应该返回0)我怎样才能做到这一点? 最佳答案 您可以为您的枚举创建一个初始化程序,它接受描述符并返回它的枚举值,然后只需调用enumValue.ra