这是一个带有关联值的常见枚举。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中的错误,还是按预期工作? 最佳答案 这是预期的行为。对于桥接
我有一个代表线宽的枚举,它可以是恒定宽度,也可以是相对于它所在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.
我有一个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
您认为哪个更有效率?'WeekDay'的使用只是一个例子:publicenumWeekDay{MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY;}首先循环并验证日期字符串:publicvoidparseString(Stringline){String[]tokens=line.split();Stringday=tokens[1];//day'should'alwaysbeaweekdayif(isValidWeekDay(day)){WeekDayweekDay=WeekDay.valueOf(day);//won'tthrowexception..
我希望为我目前正在从事的项目实现我自己的一套Exceptions。项目依赖核心框架,基础框架异常MyFrameworkException(我也在写这个框架)。对于任何给定的项目,我想抛出几种不同类型的异常,我无法决定是使用多个子类还是使用具有某种形式的枚举的单个子类>作为构造函数参数。在这两种情况下我都有:publicclassMyFrameworkExceptionextendsException{/*...*/}选项1:publicclassMyProjectBaseExceptionextendsMyFrameworkException{/*...*/}publicclassSp
我正在生成一个CSV文件和CTL文件以供sqlldr使用。CTL文件需要知道我要加载的列的名称,而我的CSV文件需要知道这些字段的默认值。/**ModelsalineintheCSVfile*/publicclassCSVRecord{...}/**ModelstheCTLfile*/publicclassControlFile{...}这两个类在CSVExportFile中初始化和使用,我有两种方法:1。枚举publicenumColumns{ID("1"),NAME("Bob"),...}2。HashMappublicclassCSVExportFile{privateHashMa
如果我在下面的代码中有一个com.example.test.Enum2.Test类,为什么getCanonicalName()返回com.example。test.Enum2.Test但Class.forName()需要"com.example.test.Enum2$Test"作为参数?有没有一种方法可以保持一致,这样我就可以通过名称序列化/反序列化枚举值,而不必检查每个$与.的可能性,当枚举是一个嵌套类?packagecom.example.test;importjava.util.Arrays;publicclassEnum2{enumTest{FOO,BAR,BAZ;}publi