swift版的枚举变量
swift版的枚举变量
swift的枚举类型跟普通的类是极为类似的,使用的时候,请不要以为他是一个常量,以下是测试用源码
// // ViewController.swift // SwiftEnum // // Created by YouXianMing on 15/10/9. // Copyright © 2015年 ZiPeiYi. All rights reserved. // import UIKitenum Planet: Int {case Mercury = 1, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune }enum CompassPoint: String {case North, South, East, West }enum Barcode {case UPCA(Int, Int, Int, Int)case QRCode(String) }enum MinionIndex: Int {case DAVE, BOB, JERRY, JORGE, KEVIN, MARK, PHIL, STUART, TIMstatic let minionNames = [DAVE : "Dave",BOB : "Bob",JERRY : "Jerry",JORGE : "Jorge",KEVIN : "Kevin",MARK : "Mark",PHIL : "Phil",STUART : "Stuart",TIM : "Tim"]func minionName() -> String {if let minionName = MinionIndex.minionNames[self] {return minionName} else {return "Minion"}}func minionImage() -> UIImage? {return UIImage(named: "Minion\(minionName())")} }class ViewController: UIViewController {override func viewDidLoad() {super.viewDidLoad()normalExample()planetExample()compassPointExample()barcodeExample()minionIndexExample()}func normalExample() {let vegetable = "red pepper"switch vegetable {case "celery":print("Add some raisins and make ants on a log.")case "cucumber", "watercress":print("That would make a good tea sandwich.")case let x where x.hasSuffix("pepper"):print("Is it a spicy \(x)?")default:print("Everything tastes good in soup.")}}func planetExample() {if let planet : Planet = Planet(rawValue: 1) {// switch 操作switch planet {case .Mercury:print("\(planet) \(planet.rawValue)")case .Earth:print("\(planet) \(planet.rawValue)")case .Neptune:print("\(planet) \(planet.rawValue)")default:print("\(planet) \(planet.rawValue)")}} else {// 没有这个枚举值print("no value")}}func compassPointExample() {if let compassPoint : CompassPoint = CompassPoint(rawValue: "Kxo") {// switch 操作switch compassPoint {case .North:print("\(compassPoint) \(compassPoint.rawValue)")case .West:print("\(compassPoint) \(compassPoint.rawValue)")default:print("\(compassPoint) \(compassPoint.rawValue)")}} else {// 没有这个枚举值print("no value")}}func barcodeExample() {let barCode = Barcode.UPCA(20, 120, 10, 20)switch barCode {case .UPCA(20, 120, 10, 20):print("YES")default:print("NO")}}func minionIndexExample() {print(MinionIndex.DAVE.minionImage())} }
rawValue类型的枚举类型
可以带参数,可以带方法
非 rawValue 类型
转载于:https://www.cnblogs.com/YouXianMing/p/4868541.html
swift版的枚举变量相关推荐
- iOS开发swift版异步加载网络图片(带缓存和缺省图片)
iOS开发之swift版异步加载网络图片 与SDWebImage异步加载网络图片的功能相似,只是代码比较简单,功能没有SD的完善与强大,支持缺省添加图片,支持本地缓存. 异步加载图片的核心代码如下: ...
- 使用CoreLocation进行定位(Swift版)
使用CoreLocation进行定位(Swift版) 在应用开发中,很多情况需要我们获取到当前的位置和高度信息,方便搜索周边,查看周边相同应用等,一切与定位有关的都得使用CoreLocation库,而 ...
- Swift版iOS游戏框架Sprite Kit基础教程下册
Swift版iOS游戏框架Sprite Kit基础教程下册 试读下载地址:http://pan.baidu.com/s/1qWBdV0C 介绍:本教程是国内唯一的Swift版的Spritekit教程 ...
- iOS游戏框架Sprite Kit基础教程——Swift版上册
iOS游戏框架Sprite Kit基础教程--Swift版上册 试读下载地址:http://pan.baidu.com/s/1qWBdV0C 介绍:本教程是国内唯一的Swift版的Spritekit ...
- Swift版音乐播放器(简化版),swift音乐播放器
这几天闲着也是闲着,学习一下Swift的,于是到开源社区Download了个OC版的音乐播放器,练练手,在这里发扬开源精神, 希望对大家有帮助! 这个DEMO里,使用到了 AudioPlayer(对音 ...
- swift版的GCD封装
swift版的GCD封装 说明 本人针对swift封装了GCD,包括GCDQueue,GCDGroup,GCDTimer以及GCDSemaphore,使用较为便利. 源码 https://github ...
- 关东升的iOS实战系列图书 《iOS实战:传感器卷(Swift版)》已经上市
承蒙广大读者的厚爱我的 <iOS实战:传感器卷(Swift版)>京东上市了,欢迎广大读者提出宝贵意见.http://item.jd.com/11760248.html 欢迎关注关东升 ...
- 微信sdk swift版_使用Swift 4的iOS版Google Maps SDK终极指南
微信sdk swift版 by Dejan Atanasov 通过Dejan Atanasov 使用Swift 4的iOS版Google Maps SDK终极指南 (Your ultimate gui ...
- swift版的StringAttribute
swift版的StringAttribute 效果 源码 https://github.com/YouXianMing/Swift-StringAttribute // // StringAttrib ...
最新文章
- 微信小程序把玩(二十七)audio组件
- UML学习总结(3)——StarUML指导手册
- git使用,Git的skil-map
- OpenCV高级拼接Stitcher类
- mysql操作总结_mysql常用操作总结大全
- python字符编码在哪里_快速入手Python字符编码
- zookeeper 都有哪些使用场景?
- html js坐标图,javascript – HTML5 Canvas沿着带坐标的路径拖动图像
- 定点化_mif文件生成
- 美国著名核物理学家,前半生为美国造核弹,后半生为中国放牛
- oracle 关于归档的视图,oracle 与归档日志相关的几个视图
- lte盲重定向_LTE重选、切换、重定向的区别
- ios点击推送闪退_苹果应用闪退是什么原因?如何解决进行ios签名后的苹果应用闪退问题?...
- Python内置函数filter, map, reduce
- Jupyter notebook基础教程(启动,汉化,操作)
- 消防Linux软件图形显示系统,消防控制室图形显示装置
- CDH--彻底解决问题----时钟异常
- C1任务-修改游戏存档
- Oracle查询表空间
- 算法创作|龟兔赛跑问题解决方法
热门文章
- java this关键字的使用_Java this 关键字的使用方法详解
- webstorm怎么建php文件夹,webstorm怎么创建css
- php备份远程系统快照,ZFS snapshot高级篇之快照备份
- mysql进程删除文件_完全卸载mysql 停止服务、卸载相关程序、删除注册表
- 快递管理系统 java_快递管理基于java物流快递管理系统设计.doc
- 经济学python值得学吗_地藏经注音,地藏经全文,地藏经全文(注音版)——学佛网...
- 图解:一句“我喜欢你”在网络中经历了什么
- hihoCoder-1098最小生成树二·Kruscal算法 (最小生成树)
- linux下安装opencv4.4.0
- 3Dslicer中 PET/CT 模块:PET Standard Uptake Value Computation