import Foundation//MARK:-------枚举语法-----------//不像 C 和 Objective-C 一样,Swift 的枚举成员在被创建时不会被赋予一个默认的整数值enum Compasspoint{ case north case South case East case West}enum Planet{ case Mercury,Venus,Earth,Mars,Jupiter,Saturn,Uranus,Nepturn}var directionTohead = Compasspoint.WestdirectionTohead = .Eastswitch directionTohead{ case .north: print("北方") case .south: print("南方") case .East: print("东方") case .West: print("西方") default: print("未知方向")}//MARK:-------实例值(Associated Values)-----------//你可以定义 Swift 的枚举存储任何类型的实例值,如果需要的话,每个成员的数据类型可以是各不相同的enum barcode{ case UPCA(Int,Int,Int) case QRCode(String)}var productbarcode = barcode.UPCA(8,85909_51226,3)productbarcode = .QRCode("ABCDEFGHIJKLMnop")switch productbarcode{ case let .UPCA(numberSystem,IDentifIEr,check): print("UPC-A with value of \(numberSystem),\(IDentifIEr),\(check).") case let .QRCode(productCode): print("QR code with value of \(productCode).")}// 输出 "QR code with value of ABCDEFGHIJKLMnop.//MARK:-------原始值(Raw Values)-----------//原始值可以是字符串,字符,或者任何整型值或浮点型值。每个原始值在它的枚举声明中必须是唯一的。当整型值被用于原始值,如果其他枚举成员没有值时,它们会自动递增。enum PlanetRaw: Int{ case Mercury = 1,Neptune}//使用枚举成员的toRaw方法可以访问该枚举成员的原始值:let earthsOrder = PlanetRaw.Earth.rawValueprint(earthsOrder)// earthsOrder is 3//MARK:-----------GCD演示----------var array = ["jack","rose","jay","grace"];//声明一个全局并发队列,类型是 dispatch_queue_t;disPATCH_QUEUE_PRIORITY_DEFAulT为队列优先级,默认为0var queue: dispatch_queue_t = dispatch_get_global_queue(disPATCH_QUEUE_PRIORITY_DEFAulT,0)//开启一个线程dispatch_async(queue,{ () -> VoID in print(NSThread.currentThread().isMainThread ? "这是主线程" : "这是后台线程") //第一个参数为次数;第三个参数 block块里面的形参是区分第几次。 dispatch_apply(array.count,queue,{ (index:Int) -> VoID in print(String(index) + " --- " + array[Int(index)]) }) //回调主线程,执行UI更新 dispatch_async(dispatch_get_main_queue(),{ () -> VoID in print(NSThread.currentThread().isMainThread ? "这是主线程" : "这是后台线程") })})总结
以上是内存溢出为你收集整理的Swift教程之枚举语法全部内容,希望文章能够帮你解决Swift教程之枚举语法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)