草庐IT

ios - 尝试打印错误(AKA ErrorType)枚举的描述

我正在使用一个继承自Error(或Swift2中的ErrorType)的枚举,我正在尝试以能够捕获错误的方式使用它并使用类似print(error.description)的东西来打印错误的描述。这是我的错误枚举的样子:enumUpdateError:Error{caseNoResultscaseUpdateInProgresscaseNoSubredditsEnabledcaseSetWallpaperErrorvardescription:String{switchself{case.NoResults:return"Noresultswerefoundwiththecurrent

ios - 如何比较同一 Swift 枚举的不同实例?

获取此枚举及其后面的三个文字实例:enumTypes{casestring(String),int(Int),bool(Bool)}lett1=Types.string("one")lett2=Types.string("two")lett3=Types.int(3)如何比较它们以使t1和t2匹配(作为相同的枚举情况,即使它们的值不同),而t1和t3不匹配(因为它们是同一枚举的不同情况),像这样?:funccompare(lhs:Types,rhs:Types)->Bool{returnlhs==rhs}print(compare(lhs:t1,rhs:t2))//prints"tru

swift - 如何为我的枚举返回空白值

我已经为我的支持类型设置了一个枚举,它是这样声明的enumSupportType:String,Codable{casetype1casetype2casetype3funcstring()->String{switchself{case.type1:return"Type1"case.type2:return"Type2"case.type3:return"Type3"}}当我添加到我的类时,我将类型声明为type:SupportType这一切在传递值时都有效,但当我尝试发送一个空白的新类型时,我尝试将其声明为NewType(name:data.name,supportType:[S

swift - 如何将文字整数分配给原始值溢出的枚举?

当您打开IOKit/usb/USB.h时,您会看到以下常量:#defineerr_system(x)(signed((unsigned(x)&0x3f)所以我决定快速尝试一下:privateenumIOUSBError:IOReturn{caseunknownPipeErr=0xe0004061casetooManyPipesErr=0xe0004060..}但它给出了错误:“整数文字‘3758112865’在存储到‘IOReturn’(又名‘Int32’)时溢出”对于每一个枚举案例..知道如何故意允许这样做吗? 最佳答案 据我所知

objective-c - Swift - 带有 button.tag 的枚举?

我在ObjC中有这段代码我想或试图将其转换为swifttypedefNS_ENUM(NSInteger,BB3Photo){kirkenType=10,festenType=20,praestType=30};@property(nonatomic,assign)BB3PhotoselectedPhotoType;-(IBAction)changeImage:(id)sender{if([senderisKindOfClass:[UIButtonclass]]){UIButton*button=sender;_selectedPhotoType=button.tag;}UIAction

ios - Swift:无法打开枚举关联值

出于学习目的,我正在将旧的ObjectiveC应用程序转换为SWIFT,在尝试为枚举提供switch语句时偶然发现了一个奇怪的问题。代码如下所示:switchentry.mood{caseletMood.THDiaryMoodGood:self.moodImageView.image=UIImage(named:"icn_happy")caseletMood.THDiaryMoodAverage:self.moodImageView.image=UIImage(named:"icn_average")caseletMood.THDiaryMoodBad:self.moodImageVi

swift - 在 Swift 类本身的协议(protocol)中使用在类中声明的枚举?

我们如何在Swift中执行前向声明之类的操作?我有一个在类之前声明的协议(protocol),但是协议(protocol)需要使用在类之前声明的枚举(recordType):protocoliCloudDelegate{funcerrorUpdating(error:NSError)funciCloudUpdated()funciCloudFetched(recordType:recordType)}classiCloud{enumrecordType:String{casePayment="Payment"caseSubtype="Subtype"caseTypes="Type"ca

swift - 有没有办法让函数接受任何具有 rawValue 字符串的枚举类型?

我想到的一种方法是制定其他Enum必须遵守的协议(protocol)。protocolStringRepresentable{varrawValue:String{get}}structEndpoint{enumUser:String,StringRepresentable{caseLogin="/user/login"caseRegister="/user/register"}enumItem:String,StringRepresentable{caseLike="/item/like"caseBuy="/item/buy"}}funcurlString(endpoint:Stri

swift - 使用 switch 语句时扩展枚举中使用的元组的语法

考虑我有一个包含2个案例的枚举,其中一个案例有一个元组:enumMyEnum{caseFirstCase(output:(someString:String,someInt:Int))caseSecondCase(error:ErrorType)}当我创建一个枚举常量时:letmyEnum=MyEnum.FirstCase(output:(someString:"myString",someInt:3))我可以使用switch语句并对每种情况做一些事情switchmyEnum{case.FirstCase(letoutput):print(output.someInt)//prints

ios - 排序字符串枚举时如何定义顺序

我有以下枚举:publicenumTestEnum:String{caseDay="Day"caseWeek="Week"caseMonth="Month"}此枚举作为String存储在CoreData中。我想按以下顺序基于我的枚举对我的值进行排序:天周月份但是因为枚举存储为String,所以它将按以下顺序排序:日、月、周。我天真的方法是向枚举添加一个Int属性并基于它进行排序:extensionTestEnum{varsortIndex:Int{switchself{case.Day:return0case.Week:return1case.Month:return2}}}funcB