swift版的枚举变量
swift版的枚举变量

swift的枚举类型跟普通的类是极为类似的,使用的时候,请不要以为他是一个常量,以下是测试用源码
//
// ViewController.swift
// SwiftEnum
//
// Created by YouXianMing on 15/10/9.
// Copyright © 2015年 ZiPeiYi. All rights reserved.
// import UIKit enum Planet: Int { case Mercury = , 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, TIM static 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: ) { // 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(, , , ) switch barCode { case .UPCA(, , , ):
print("YES") default:
print("NO")
}
} func minionIndexExample() { print(MinionIndex.DAVE.minionImage())
}
}
rawValue类型的枚举类型



可以带参数,可以带方法


非 rawValue 类型

swift版的枚举变量的更多相关文章
- Swift版iOS游戏框架Sprite Kit基础教程下册
Swift版iOS游戏框架Sprite Kit基础教程下册 试读下载地址:http://pan.baidu.com/s/1qWBdV0C 介绍:本教程是国内唯一的Swift版的Spritekit教程. ...
- Swift版音乐播放器(简化版),swift音乐播放器
这几天闲着也是闲着,学习一下Swift的,于是到开源社区Download了个OC版的音乐播放器,练练手,在这里发扬开源精神, 希望对大家有帮助! 这个DEMO里,使用到了 AudioPlayer(对音 ...
- 快速排序OC、Swift版源码
前言: 你要问我学学算法在工作当中有什么用,说实话,当达不到那个地步的时候,可能我们不能直接的感觉到它的用处!你就抱着这样一个心态,当一些APP中涉及到算法的时候我不想给其他人画界面!公司的项目也是暂 ...
- iOS可视化动态绘制八种排序过程(Swift版)
前面几篇博客都是关于排序的,在之前陆陆续续发布的博客中,我们先后介绍了冒泡排序.选择排序.插入排序.希尔排序.堆排序.归并排序以及快速排序.俗话说的好,做事儿要善始善终,本篇博客就算是对之前那几篇博客 ...
- swift版的CircleView
swift版的CircleView 效果图 源码 // // CircleView.swift // CircleView // // Created by YouXianMing on 15/10/ ...
- swift版的GCD封装
swift版的GCD封装 说明 本人针对swift封装了GCD,包括GCDQueue,GCDGroup,GCDTimer以及GCDSemaphore,使用较为便利. 源码 https://github ...
- swift版的StringAttribute
swift版的StringAttribute 效果 源码 https://github.com/YouXianMing/Swift-StringAttribute // // StringAttrib ...
- swift版的元组
swift版的元组 说明 元组的内容并不多,使用的话跟普通变量类似,以下是测试源码: // // ViewController.swift // Tuples // // Created by You ...
- 关东升的iOS实战系列图书 《iOS实战:入门与提高卷(Swift版)》已经上市
承蒙广大读者的厚爱我的 <iOS实战:入门与提高卷(Swift版)>京东上市了,欢迎广大读者提出宝贵意见.http://item.jd.com/11766718.html ...
随机推荐
- 深度剖析Dubbo源码
-----------------学习dubbo源码,能给你带来什么好处?----------- 1.提升SOA的微服务架构设计能力 通过读dubbo源码是一条非常不错的通往SOA架构设计之路,毕 ...
- ArrayList的subList方法
参考博文使用java.util.List.subList时最好小心点 List接口中定义: List<E> subList(int fromIndex, int toIndex); 英文注 ...
- [经典]网关,DNS,DHCP三者关系详解
什么叫网关的精解 Sample Text转自(协议分析论坛)计算机主机网关的作用是什么?假设你的名字叫小不点,你住在一个大院子里,你的邻居有很多小伙伴,在门口传达室还有个看大门的李大爷,李大爷就是你的 ...
- 纯Java JDBC连接数据库,且用JDBC实现增删改查的功能
Java JDBC连接数据库 package cn.cqvie.yjq; import java.sql.*; /** * 注册数据库的驱动程序,并得到数据库的连接对象 * @author yu * ...
- Hive是什么
Hive是什么1)Hive 是建立在Hadoop (HDFS/MR)上的用于管理和查询结果化/非结构化的数据仓库:2)一种可以存储.查询和分析存储在Hadoop 中的大规模数据的机制:3)Hive 定 ...
- C/C++ 类型内存占用详解
最近做一些面试题目碰到了很多次考察C/C++类型内存占用的题目,主要考察队C/C++的指针.类型等的熟悉程度. 本blog为了方面大家参考,总结了常见的类型内存占用的情况,能力所限,若有问题,请指出! ...
- centos6.5下yum安装mysql5.5
第一步就是看linu是否安装了mysql,经过rpm -qa|grep mysql查看到centos下安装了mysql5.1,那就开始卸载咯 2 接下来就是卸载mysql5.1了,命令:rpm -e ...
- mybatis之@Select、@Insert、@Delete、@Param
之前学习的时候,看到别人在使用mybatis时,用到@Select.@Insert.@Delete.@Param这几个注解,故楼主研究了一下,在这里与大家分享 当使用这几个注解的时候,可以省去写Map ...
- Java虚拟机 - 符号引用和直接引用理解
java -- JVM的符号引用和直接引用 https://www.zhihu.com/question/50258991 在JVM中类加载过程中,在解析阶段,Java虚拟机会把类的二级制数据中的符号 ...
- Code Signal_练习题_All Longest Strings
Given an array of strings, return another array containing all of its longest strings. Example For i ...