草庐IT

ios - 枚举大小写的 Swift typealias

好吧,我已经完成了作业并阅读了我能找到的内容,但我似乎无法找到是否可以使用Swift来完成。我有一个到处都在使用的枚举:SomeEnum如果它是case则它是一个冗长的SomeEnum.SomeLengthyCaseName并且我我厌倦了在我的代码中看到它。我不想重构,因为我喜欢新人维护我的代码时案例的描述性。所以问题来了:是否可以为SomeEnum.SomeLengthyCaseName创建一个typealias?如果是这样,怎么办?这是我尝试过的:enumSomeEnum{caseSomeLengthyCaseName}typealiasSLCN=SomeEnum.SomeLeng

Swift 枚举关联值

我的API有路径,后面有一个整数。例如,/get/news/{id}。对于路径端点,我有这样的枚举:enumEndpoints:String{casenews="news"}有什么方便的方法来使用关联值吗?类似的东西:casenewsById(id:String)="get/news/"+id 最佳答案 你可以使用这个:enumAPIEndpoints{casenews(id:Int)varpath:String{switchself{caselet.news(id):return"/get/news/\(id)"}}}并像这样使用

swift - 是否可以在枚举关联值条件和另一个枚举案例之间编写复合切换案例?

出于演示目的,我创建了下一个代码:enumWeatherType{casecloudy(coverage:Int)casesunnycaserainy}lettoday:WeatherType=.cloudy(coverage:0)switchtoday{case.cloudy(letcoverage)wherecoverage==0,.sunny://编译错误信息是'coverage'mustbeboundineverypattern。正如我已经在谷歌上搜索到的那样,使用关联值的一种方法是比较同一枚举案例中值的不同状态。但这可能会导致代码重复,就像在我的示例中一样,我需要为.sunn

ios - 从值中获取枚举

我对Swift中的enum有疑问。我这样声明我的枚举:enumFirstEnum:CustomStringConvertible{caseVALUE1caseVALUE2caseVALUE3vardescription:String{switchself{case.VALUE1:return"Firstvalue"case.VALUE2:return"Secondvalue"case.VALUE3:return"Thirdvalue"}}funcgetFromCode(value:String)->FirstEnum?{switchvalue{case"v1":returnFirstE

math - Swift 枚举递归关联值

我正在尝试使用Swift中的枚举创建数学表达式。此枚举可以是一个常量,具有ComplexNumber类型(一个简单结构)的关联值。它也可以是具有递归关联值的平方根表达式。例如,我希望能够将sqrt(sqrt(1+2i))存储在枚举中。enumExpression{caseSqrt(Expression)caseConstant(ComplexNumber)}Xcode(6beta2)立即崩溃。有什么问题?根据我在Swift指南中读到的有关关联值的内容,这应该可行。 最佳答案 从beta4开始,现在可以使用Swift2.0。发行说明中

swift - 您如何反射(reflect) Codable/Codable Keys 协议(protocol)的设计?

我正在尝试实现类似于Swift如何在实现Codable的类中定义的枚举上使用CodableKeys协议(protocol)集的方式。在我的例子中,类是CommandHandler,枚举是CommandIds,它不需要编译器的代码生成,因为枚举总是被显式指定。这是我所追求的简化版本...protocolCommandId{}protocolCommandHandler{associatedtypeCommandIds:CommandId,RawRepresentable}classHandlerA:CommandHandler{enumCommandIds:String,CommandI

Swift enum - 约束关联值

我有一个代表线宽的枚举,它可以是恒定宽度,也可以是相对于它所在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 - 比较枚举与关联值短语法

我在努力简化varisReachable={switchstatus{case.reachable:returntruedefault:returnfalse}}()类似于varisReachable=(casestatus==.reachable)这里是完整的例子:enumNetworkReachabilityStatus{caseunknowncasenotReachablecasereachable(Alamofire.NetworkReachabilityManager.ConnectionType)}NetworkReachabilityManager().listener=

swift - 比较两个枚举变量而不考虑它们的关联值

考虑这个枚举:enumDataType{caseOne(data:Int)caseTwo(value:String)}Swift有模式匹配来比较枚举和相关值,像这样:letvar1=DataType.One(data:123)letvar2=DataType.One(data:456)ifcaseDataType.One(data:_)=var2{print("var2isDataType.One")}如果不比较一个变量与枚举类型,而是比较两个变量的枚举类型,怎么办?我看到了一大堆类似的问题,但没有一个关注你的情况两个变量。我基本上想要的是:ifcasevar1=var2{print(

swift - 关联值符合 CaseIterable、RawRepresentable 的枚举

我试图使具有关联值的枚举符合CaseIterable、RawRepresentable。当通过rawValue初始化时,我对关联值的一些默认值没问题。enumGenresAssociated:CaseIterable,RawRepresentable,Equatable{caseunknown(String)caseblues(String)caseclassical(String)//ImplementingCaseIterabletypealiasAllCases=[GenresAssociated]//Enumscanhavenostorage,buttheclasstheyar