草庐IT

swift - 在 Constant 类中访问枚举时在 swift 中编译错误

我的这段代码无法编译。我的想法是我想保留一个全局常量类。ViewController.swift:varuser=[String:String]()user[CUser.Attribute.TYPE]=userTypeSwitch.on?CUser.Type.RIDER.rawValue:CUser.Type.RIDER.rawValueCUser.swiftclassCUser{enumType:String{caseRIDERcaseDRIVER}classAttribute{staticletTYPE="TYPE"}}错误信息是这样的:“类型‘CUser.Type’没有成员‘RI

swift - 在枚举中使用初始化程序并分配给自己

我的代码:enumGrade:String{caseA,B,C,D,E,F,U,Sinit!(_result:Int){ifresult>100{returnnil}switchresult{case0:self=.Ucase1...49:self=.Fcase0:self=.Ucase50...59:self=.Ecase60...69:self=.Dcase70...79:self=.Ccase80...89:self=.Bcase90...99:self=.Acase100:self=.Sdefault:break}}}看起来不错,但我出错了。错误:在初始化所有存储的属性之前使用

swift - 基于字符串的枚举是否有 Swift 类型?

我有一个接受String标签参数的函数:funcfindFooByTag(_tag:String)->Foo现在我想通过为有效标记值引入一个枚举来使代码更短和更安全:enumTags:String{caseonecasetwocasethree}但我仍然必须使用String调用该函数:letfoo=findFooByTag(Tags.one.rawValue)有没有办法说“findFooByTag采用任何基于字符串的枚举”?我发现了这个:funcfindFooByTag(_tag:T)->FoowhereT:RawRepresentable,T.RawValue==String但那是相

ios - 如何使用枚举制作切换开关

我正在研究为相机输入制作一个切换开关。我的目标是拥有一个我可以调用的枚举,如CameraPosition.rear或CameraPosition.front并且相机输入会相应地改变。这是我到目前为止得到的:varcurrentCameraPosition:CameraPosition?varfrontCameraInput:AVCaptureDeviceInput?varrearCameraInput:AVCaptureDeviceInput?varcurrentCameraInput:AVCaptureDeviceInput?enumCameraPosition{casefrontc

arrays - 使用多个索引 :[Int] 枚举多线性映射的 Swift 算法

多线性映射M的元素存储在长度为N的一维数组中,形状S由S:[Int]=[p,q,r,...]这样q*p*r*...=N。Shape的大小可变,在编译时未知。我要解决的问题是使用整数数组访问map元素的通用方法,其中各个值是ShapeS中的坐标,例如:M[1,3,2],M[2,3,3,3]etc...这是一个不同于简单枚举map元素的问题。一种方法是使用M[i,j,k]并实现一个下标方法。不幸的是,这种方法对map的形状进行了硬编码,并且该算法不再通用。假设有一个效用函数从派生自mapShape的元组返回元素索引,因此:funcindex(_indexes:[Int])->Int{...

ios - 为什么在命名 Swift 枚举大小写时出现 'is not a valid digit in integer literal' 错误?

我正在尝试创建一个带有运行距离的枚举,但是Swift不允许我以这种格式命名enum案例5K。我收到一条错误消息,提示'K'不是整数文字中的有效数字。这是我的代码: 最佳答案 标识符和类型属性/枚举案例不能以数字开头。您需要更改枚举的命名约定。enumRaceType:String{casefiveK="5K"casetenK="10K"casemarathon} 关于ios-为什么在命名Swift枚举大小写时出现'isnotavaliddigitinintegerliteral'错误?,

swift - "static"对枚举或结构中的常量意味着什么

我最近遇到了以下问题:enumMyEnum{staticletmyVariable="somevalue"}structMyStruct{staticletmyVariable="somevalue"}并想知道static意味着什么。根据我的理解,let已经暗示了不变性,然后由enum/struct的所有实例共享。在我看来,这是对内存消耗进行微观管理,但我不确定我是否遗漏了这里的基本要点。 最佳答案 这意味着myVariable是一个typeproperty–该类型的所有实例都可以使用的单个属性。本质上是与MyEnum关联的全局变量

swift - 使 Swift (2.1) 枚举符合 AnyObject

我有一些类型的字典:publictypealiasRESTPostDictionary=[RESTPostDictionaryKey:AnyObject]publictypealiasRESTRequestDictionary=[RESTRequestDictionaryKey:AnyObject]我使用枚举是因为我希望字典的键只是枚举中的一种情况:publicenumRESTPostDictionaryKey:String{caseRequests="requests"}并且:publicenumRESTRequestDictionaryKey:String{caseRequestU

arrays - 如何在 Swift 中初始化包含枚举数组的结构数组?

我试图将Pascal程序转换为包含嵌套数据结构的Swift程序。我无法初始化数组,请指教我应该如何编写这个示例。enumKW:Int{caseXXXX=0,YYYY,ZZZZ}letnumCards=49typealiasCard=[KW]structKSet{vark1:Cardvark2:Card}varcards:[KSet]=[]funcrotate(k:Card)->Card{return([k[2],k[0],k[3],k[1]])}funcinitOne(k:Card){cards.append(k1:k,k2:rotate(k))// 最佳答

Swift:在没有 switch 语句的情况下打开枚举

使用Optionals,您可以轻松地检查结果并使用非nil或传递nil,只需一行:guardx=couldReturnNil()else{returnnil}//Afterhere,xcanbeusedsafely.Callingfunction//candothesame,sonilgetspassedbackdownthecallingstack.这使得返回类型错误处理变得容易。我想要的是其他枚举的类似单行代码。就像.Fail/.Succeed的经典例子。例如:enumResult{.Fail(String)//Errormessage..Succeed(MyType)//Some