草庐IT

swift - 这是枚举数组并寻找潜在对象存储到变量中的正确方法吗?

我一直在努力想出一个简洁的标题,但我认为问题很简单:varselectedModule:Module?=nilformoduleinModuleList.modulesArray{ifmodule.name==selectedModuleName{selectedModule=module}}ifletmoduleFound=selectedModule{_set(model:&viewModel.module,button:moduleButton,displayedValue:selectedModuleName,actualValue:moduleFound)}这就是我现在所拥有

ios - Swift 枚举被视为可选?

在“CardDeck”类的下面一行中看起来像这样letcard=CardSprite(value:i,withSuite:suit)我得到错误:Valueofoptionaltype'Suit?'notunwrapped.Didyoumeantouse"!"or"?"根据我对所用构造的理解,我没想到会出现此错误。有谁知道为什么在这个例子中枚举类型Suit被认为是可选的?我正在使用Xcode7beta4。注意:我可以按照XCode弹出的说明来解决这个问题。我只是不明白为什么会这样。XCode建议像这样显式解包letcard=CardSprite(value:i,withSuite:sui

swift - 具有原始值的枚举

为什么我不能用这样的原始值定义枚举?enumEdges:(Double,Double){caseTopLeft=(0.0,0.0)caseTopRight=(1.0,0.0)caseBottomLeft=(0.0,1.0)caseBottomRight=(1.0,1.0)} 最佳答案 元组不能是枚举的原始值类型。来自TheSwiftProgrammingLanguage:Rawvaluescanbestrings,characters,oranyoftheintegerorfloating-pointnumbertypes.不过您可

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

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

cocoa - 如何将 NSNumber 与快速枚举值进行比较?

我正在尝试对通过NSNotification接收的值和枚举值进行简单比较。我有一些有用的东西,但我不敢相信这是做这件事的正确方法。基本上,我最终得到的解决方案是将NSNumber转换为Int,并获取枚举值的rawValue,将其包装在NSNumber中,然后获取它的integerValue。我尝试的所有其他方法都导致编译器错误,无法在Uint8和Int或类似的东西之间进行转换。observer=NSNotificationCenter.defaultCenter().addObserverForName(AVAudioSessionRouteChangeNotification,obj

ios - 声明在同一文件中时枚举中未声明的类型

我正在尝试创建一个简单的数据类型来存储视频或图像+声音,但我在枚举MovieItem上收到编译错误“使用未声明的类型”和ImageItem.怎么了?structMovieItem{letmovieUrl:NSURL}structImageItem{letimageUrl:NSURL//UIImage?letsoundUrl:NSURL}enumItem{caseMovieItem(MovieItem)//Undeclaredtype:MovieItemcaseImageItem(ImageItem)//Undeclaredtype:ImageItem} 最佳

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 - 在 Swift 中交换枚举值

我目前对Swift还很陌生,我想知道是否可以以任何方式优化/缩短以下代码:enumCardOrientation{caseHorizontal,Vertical}functoggleCurrentCardOrientation(){switchcurrentCardOrientation{case.Horizontal:currentCardOrientation=.Verticalcase.Vertical:currentCardOrientation=.Horizontal}}让我们假设CardOrientation总是只有这两个可能的值,并且每次调用toggleCurrentCa

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)}编译器告诉