SWIFT Enumeration(2)】的更多相关文章

之前记录了Swift Enumeration(1),这篇算是它的延续吧,继续说下Enumeration,看以下定义 enum TrainStatus { case OnTime case Delay(Int) //带关联值 } var myTrainStatus = TrainStatus.Delay(10) 用Switch 匹配对象 switch myTrainStatus{ case .OnTime: println("Train is ontime") case .Delay(l…
Swift中定义Enumeration跟其它语言挺类似的,看如下定义一个星期的Enumeration enum Day:Int{ case Monday = 1, Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday } Monday赋值为1其它值则按顺序自动赋值,也是一种比较简便的写法,当然也可以为每个属性赋值 enum Day:Int{ case Monday = 1 case Tuesday = 2, case Wednesday = 3,Th…
Apple官方文档:The Swift Programming LanguageProtocols and Extensions一节的小节练习,要求自行定义一个enumeration枚举类型,并且遵循ExampleProtocol协议: protocol ExampleProtocol { var simpleDescription: String { get } mutating func adjust() } 在网上找了好久,都不知道怎样实现,最后参照一篇帖子(http://forums.m…
下标脚本可以定义在类(Class).结构体(Struct).枚举(enumeration)这些目标中,可以认为是访问集合,列表或序列的快捷方式,使用下标脚本的索引设置和获取值,不需要再调用实例的特定的赋值和访问方法.对于同一个目标可以定义多个下标脚本,通过索引值类型的不同来进行重载,下标脚本不限于单个纬度,你可以定义多个入参的下标脚本满足自定义类型的需求. 1.下标脚本的语法 下标脚本允许你通过在实例后面的方括号中传入一个或多个的索引值来对实例进行访问和赋值.语法类似于实例方法和计算属性的混合.…
枚举为一组相关的值定义一个共同的类型,并允许您在代码中的以类型安全的方式中使用这些值,在 Swift 中,枚举类型是一等(first-class)类型.它们采用了很多传统上只被类所支持的特征,例如计算型属性(computed properties),用于提供关于枚举当前值的附加信息,实例方法(instance methods),用于提供和枚举所代表的值相关联的功能.枚举也可以定义构造器(initializers)来提供一个初始成员值:可以在原始的实现基础上扩展它们的功能:可以遵守协议(proto…
1. 应该充分利用swfit的新特性 比如如果按照oc里的习惯,调用一个delegate中都optional函数应该这样写 if delegate != nil && delegate!.respondsToSelector("downloadProgress:progress:"){ delegate!.downloadProgress!(self, progress: totalProgress) } 先检查是不是nil,再检查是否实现了方法,而swift应该这样写…
一条声明可以在你的程序里引入新的名字和构造.举例来说,你可以使用声明来引入函数和方法,变量和常量,或者来定义 新的命名好的枚举,结构,类和协议类型.你也可以使用一条声明来延长一个已经存在的命名好的类型的行为.或者在你的 程序里引入在其他地方声明的符号. 在swift中,大多数声明在某种意义上讲也是执行或同事声明它们的初始化定义.这意味着,因为协议和他们的成员不匹配, 大多数协议成员需要单独的声明.为了方便起见,也因为这些区别在swift里不是很重要,声明语句同时包含了声明和定义. GRAMMAR…
内容提要: 本文前两部分讲了Cocoa的集合类和Swift的集合类,其中Cocoa提供的集合类包括NSArray.NSMutableArray.NSDictionary.NSMutableDictionary.NSSet:Swift的集合类包括Array<SomeType>或[SomeType].Set<SomeType>.Dictionary<KeyType, ValueType>.每个小类目是对应的集合类的用法.最后,本文讲解了Cocoa集合类的3种遍历方法. 正文…
1.Swift 2.0 带来哪些新变化 常规变化: 1.OS X 10.11.iOS 9 和 watchOS 2 SDK 采纳了一些 Objective-C 的特性用来提高 Swift 的编程体验, 如可空性.类型化集合和一些别的特性. 2.编译器对冗余的协议一致性,未被使用的绑定值以及可以设为常量的变量这些情况目前会给予警告或报错. 3.修复了跨文件协议遵循时符号不可见或者重复的错误. 4.Swift 语言的调用约定更加智能,能够理解 API 所发生的变化和 Swift 所给出的警告. 5.便…
1.Subscript 下标脚本允许你通过在实例后面的方括号中传入一个或者多个的索引值来对实例进行访问和赋值.语法类似于实例方法和计算型属性的混合.与定义实例方法类似,定义下标脚本使用 subscript 关键字,显式声明入参(一个或多个)和返回类型,每个输入参数的类型也没有限制,返回值可以是任何类型,并无限制.输入参数也可以使用可变参数,但使用输入/输出(in-out)参数或和给参数设置默认值都是不允许的.与实例方法不同的是下标脚本可以设定为读写或只读.这种方式又有点像计算型属性的 gette…
前言 Swift 全面支持 Unicode 符号. Swift 中的定义和实现是在同一个单元中的,通常一个 Swift 源代码单文件是以 ".Swift" 结尾的. Swift 不需要单独编写一个 main 函数作为入口,在 Swift 语言中函数是一等成员,编译器会自动将遇到的第一个函数作为入口. Swift 允许我们不用在行尾加分号 ";".但如果在同一行有两个甚至多个表达式,需要在每个表达式后面加上分号. Playground 是一种编写代码时可以即时预览代码…
枚举: swift中的枚举有些类似于类这个概念,它有自己的属性,也可以有自己的方法 枚举中的成员有原始值和实际值之分,原始值用来枚举成员的排序次序,默认从0开始 枚举出来的成员值就是实际值 可以通过toRaw和fromRaw函数转换原始值和枚举值 也可以使用字符处或浮点数作为枚举的原始值 枚举: 匹配枚举值和Switch语句(Matching Enumeration Values with a Switch Statement) 具体举例如下: //给扑克牌内容声明一个枚举(A.2.3.4.5.…
枚举 一个枚举为一组相关联的值定义一个通用类型,并且让你可以在代码中类型安全地操作这些值. C中的枚举将关联的名字指派给一系列整型值.Swift中的枚举类型更为活泼,并不需要为每个成员指定值,如果指定值(raw value),这个值可以是String或者Character.整型或者浮点型. 此外,每个枚举成员可以指定不同数量的任意类型的关联值存储起来.这有点像其他语言里的联合.你可以定义一个普通的一系列关联值的集合作为一个枚举的一部分,每个枚举都可以有一个适当类型的不同集合. 在Swift中,枚…
Swift中的反射非常有限,仅允许以只读方式访问元数据的类型子集.或许 Swift 因有严格的类型检验而不需要反射.编译时已知各种类型,便不再需要进行进一步检查或区分.然后大量的 Cocoa API 会立即给实例分配"AnyObject"类型,用户只能想方设法去做类型匹配. 而这里将回顾 Swift 中的反射.镜像类型以及将它们结合起来的 MirrorType 协议. MirrorType 反射的切入点为「reflect」函数,「reflect」函数可将任何类型作为其单参数并返回一个…
1. 枚举语法      1)枚举的定义 使用enum关键词而且把它们的整个定义放在一对大括号内: enum SomeEumeration { // enumeration definition goes here } 以下来看看详细样例: enum CompassPoint { case North case South case East case West } 注意:           ①不像C和Objective-C一样,Swift的枚举成员在被创建时不会被赋予一个默认的整数值.在上面…
原文:http://www.cocoachina.com/newbie/basic/2014/0612/8800.html 模式(pattern)代表了单个值或者复合值的结构.比如,元组(1, 2)的结构是逗号分隔的,包括两个元素的列表.由于模式代表一种值的结构,而不是特定的某个值,你能够把模式和各种同类型的值匹配起来.比方,(x, y)能够匹配元组(1, 2),以及不论什么含两个元素的元组.除了将模式与一个值匹配外,你能够从合成值中提取出部分或所有,然后分别把各个部分和一个常量或变量绑定起来.…
import Foundation //*********************************************************************************************** //1.Hello world //_______________________________________________________________________________________________ //输出 "Hello, world&q…
阅读目录 在Swift中使用JSON的问题 开始 基础用法 枚举(Enumeration) 下标(Subscripts) 打印 调试与错误处理 后记   因为Swift对于类型有非常严格的控制,它在处理JSON时是挺麻烦的,因为它天生就是隐式类型.SwiftyJSON是一个能帮助我们在Swift中使用JSON的开源类库.开始之前,让我们先看一下在Swift中处理JSON是多么痛苦. 在Swift中使用JSON的问题 以Twitter API为例.使用Swift,从tweet中取得一个用户的“na…
与Object-c一样,swift使用自己主动引用计数来跟踪并管理应用使用的内存.当实例不再被使用时,及retainCount=0时,会自己主动释放是理所占用的内存空间. 注:引用计数仅适用于类的实例,由于struct和enumeration属于值类型,也就不牵涉引用,所以其存储和管理方式并非引用计数. 当一个实例被初始化时,系统会自己主动分配一定的内存空间,用于管理属性和方法.当实例对象不再被使用时,其内存空间被收回. swift中的引用类型分为三种,即Strong强引用,weak弱引用和无主…
我自己录制的swift菜鸟入门,大家拍砖,有什么问题能够在这里留言. 主要内容: 枚举语法(Enumeration Syntax) 匹配枚举值与Swith语句(Matching Enumeration Values with a Switch Statement) 相关值(Associated Values) 原始值(Raw Values) 视频地址: 百度网盘:http://pan.baidu.com/s/1AMAtg 土豆:http://www.tudou.com/programs/view…
枚举定义了一个通用类型的一组相关的值,使你可以在你的代码中以一个安全的方式来使用这些值.   如果你熟悉 C 语言,你就会知道,在 C 语言中枚举指定相关名称为一组整型值.Swift 中的枚举更加灵活,不必给每一个枚举成员(enumeration member)提供一个值.如果一个值(被认为是“原始”值)被提供给每个枚举成员,则该值可以是一个字符串,一个字符,或是一个整型值或浮点值.   此外,枚举成员可以指定任何类型的关联值存储到枚举成员值中,就像其他语言中的联合体(unions)和变体(va…
原文链接:http://www.jianshu.com/p/52e7580166ff 版本2:增加了Swift 2.0的语法,与Swift 1.2的语法相比,主要是:advance方法变成了advancedBy方法(但不是简单替换):没有了count方法,count(str)需要变成str.characters.count等. 字符串的定义 var str1="hello, mandarava." //字符串变量 let str2="hello, mandarava.&quo…
原创:转载请注明出处 41.闭包表达式语法(Closure Expression Syntax) 闭包表达式语法有如下一般形式: { (parameters) -> returnType in     statements } 闭包表达式语法可以使用常量.变量和inout类型作为参数,不能提供默认值.也可以在参数列表的最后使用可变参数.元组也可以作为参数和返回值. 下面的例子展示了之前backwards(_:_:)函数对应的闭包表达式版本的代码: reversed = names.sort({…
可选类型定义 Swift 标准库中定义后缀  ?为可选类型 Optional<Wrapped> 的语法糖,这里语法糖可以简单理解为一种便捷的书写语法.也就是说,下面两个声明是等价的: var name: Optional<String> var name: String? 上述两种情况,变量 name 被声明为可选字符串类型. 我们可以在xcode编译器中,按住 command 键 同时点击 OPtional,可以跟进去查看可选类型的具体实现: public enum Option…
本文主要闲聊一些 Objective-C 和 Swift 混编项目带来的一些潜规则,希望能帮到对此感到疑惑的朋友.下面我们开始进入主题: 命名 官方 Guide 上只是简单叙述(Using Swift with Cocoa and Objective-C),即 Swift 编译器会在我们使用 Objective-C 的 API 时自动的将其转成 Swift 风格的 API(说白了就是会对一些方法名.枚举名等等做一些有规则的删减,即重命名). 单例方法命名 在 Swift 中引用 Objectiv…
@import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/css/cuteeditor.css); @import url(htt…
一 类型检查 1. 类型检查操作符 类型检查用来检查或转换一个实例的类型到另外的类型的一种方式. 在Swift中,类型检查使用is和as操作符来实现. is操作符用来检查一个实例是否是某种特定类型,如果是返回true,否则返回false. as操作符用来把某个实例转型为另外的类型,由于实例转型可能失败,因此Swift为as操作符提供了两种形式:选项形式as?和强制形式as. 选项形式(as?)的操作执行转换并返回期望类型的一个选项值,如果转换成功则返回的选项包含有效值,否则选项值为 nil 强制…
realm swift调研: After you have added the object to the Realm you can continue using it, and all changes you make to it will be persisted (and must be made within a write transaction). Any changes are made available to other threads that use the same R…
原文:http://www.cocoachina.com/applenews/devnews/2014/0623/8923.html Swift 事实上是支持反射的.只是功能略弱. 本文介绍主要的反射使用方法和相关类型.   MetaType 和 Type 语法 The metatype of a class, structure, or enumeration type is the name of that type followed by .Type. The metatype of a…
首先,隆重推荐文章http://www.infoq.com/cn/articles/swift-brain-gym-optional swift 烧脑体操!目前有4篇文章,说的都很好! 1. 应该充分利用swfit的新特性 比如如果按照oc里的习惯,调用一个delegate中都optional函数应该这样写 if delegate != nil && delegate!.respondsToSelector("downloadProgress:progress:"){…