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版的枚举变量相关推荐

  1. iOS开发swift版异步加载网络图片(带缓存和缺省图片)

    iOS开发之swift版异步加载网络图片 与SDWebImage异步加载网络图片的功能相似,只是代码比较简单,功能没有SD的完善与强大,支持缺省添加图片,支持本地缓存. 异步加载图片的核心代码如下: ...

  2. 使用CoreLocation进行定位(Swift版)

    使用CoreLocation进行定位(Swift版) 在应用开发中,很多情况需要我们获取到当前的位置和高度信息,方便搜索周边,查看周边相同应用等,一切与定位有关的都得使用CoreLocation库,而 ...

  3. Swift版iOS游戏框架Sprite Kit基础教程下册

    Swift版iOS游戏框架Sprite Kit基础教程下册 试读下载地址:http://pan.baidu.com/s/1qWBdV0C  介绍:本教程是国内唯一的Swift版的Spritekit教程 ...

  4. iOS游戏框架Sprite Kit基础教程——Swift版上册

    iOS游戏框架Sprite Kit基础教程--Swift版上册 试读下载地址:http://pan.baidu.com/s/1qWBdV0C  介绍:本教程是国内唯一的Swift版的Spritekit ...

  5. Swift版音乐播放器(简化版),swift音乐播放器

    这几天闲着也是闲着,学习一下Swift的,于是到开源社区Download了个OC版的音乐播放器,练练手,在这里发扬开源精神, 希望对大家有帮助! 这个DEMO里,使用到了 AudioPlayer(对音 ...

  6. swift版的GCD封装

    swift版的GCD封装 说明 本人针对swift封装了GCD,包括GCDQueue,GCDGroup,GCDTimer以及GCDSemaphore,使用较为便利. 源码 https://github ...

  7. 关东升的iOS实战系列图书 《iOS实战:传感器卷(Swift版)》已经上市

     承蒙广大读者的厚爱我的 <iOS实战:传感器卷(Swift版)>京东上市了,欢迎广大读者提出宝贵意见.http://item.jd.com/11760248.html 欢迎关注关东升 ...

  8. 微信sdk swift版_使用Swift 4的iOS版Google Maps SDK终极指南

    微信sdk swift版 by Dejan Atanasov 通过Dejan Atanasov 使用Swift 4的iOS版Google Maps SDK终极指南 (Your ultimate gui ...

  9. swift版的StringAttribute

    swift版的StringAttribute 效果 源码 https://github.com/YouXianMing/Swift-StringAttribute // // StringAttrib ...

最新文章

  1. 微信小程序把玩(二十七)audio组件
  2. UML学习总结(3)——StarUML指导手册
  3. git使用,Git的skil-map
  4. OpenCV高级拼接Stitcher类
  5. mysql操作总结_mysql常用操作总结大全
  6. python字符编码在哪里_快速入手Python字符编码
  7. zookeeper 都有哪些使用场景?
  8. html js坐标图,javascript – HTML5 Canvas沿着带坐标的路径拖动图像
  9. 定点化_mif文件生成
  10. 美国著名核物理学家,前半生为美国造核弹,后半生为中国放牛
  11. oracle 关于归档的视图,oracle 与归档日志相关的几个视图
  12. lte盲重定向_LTE重选、切换、重定向的区别
  13. ios点击推送闪退_苹果应用闪退是什么原因?如何解决进行ios签名后的苹果应用闪退问题?...
  14. Python内置函数filter, map, reduce
  15. Jupyter notebook基础教程(启动,汉化,操作)
  16. 消防Linux软件图形显示系统,消防控制室图形显示装置
  17. CDH--彻底解决问题----时钟异常
  18. C1任务-修改游戏存档
  19. Oracle查询表空间
  20. 算法创作|龟兔赛跑问题解决方法

热门文章

  1. java this关键字的使用_Java this 关键字的使用方法详解
  2. webstorm怎么建php文件夹,webstorm怎么创建css
  3. php备份远程系统快照,ZFS snapshot高级篇之快照备份
  4. mysql进程删除文件_完全卸载mysql 停止服务、卸载相关程序、删除注册表
  5. 快递管理系统 java_快递管理基于java物流快递管理系统设计.doc
  6. 经济学python值得学吗_地藏经注音,地藏经全文,地藏经全文(注音版)——学佛网...
  7. 图解:一句“我喜欢你”在网络中经历了什么
  8. hihoCoder-1098最小生成树二·Kruscal算法 (最小生成树)
  9. linux下安装opencv4.4.0
  10. 3Dslicer中 PET/CT 模块:PET Standard Uptake Value Computation