
Swift
文章平均质量分 88
Code_Ninja
你必须非常努力,才能看起来毫不费力。
http://github.com/apestalk
展开
-
Swift学习开篇
Swift出来已经有一阵子了,刚出来的时候把苹果官网的Swift英文版教程看了几十页,边看边用翻译翻译自己不认识的单词。那个时候下载了一个Xcode6 beta版的玩了一下PlayGround,由于Xcode6 beta版非常不稳定,经常写代码的时候会闪退。一边看教程,一边在PlayGround中写代码,Xcode时常闪退让我很不爽。后来因为项目要赶进度,天天加班到很晚,就没学习Swift了,凉了原创 2014-11-29 15:51:09 · 700 阅读 · 0 评论 -
20.Swift-扩展
扩展就是向一个已有的类、结构体或枚举类型添加新功能(functionality)。这包括在没有权限获取原始源代码的情况下扩展类型的能力(即逆向建模)。扩展和 Objective-C 中的分类(categories)类似。(不过与Objective-C不同的是,Swift 的扩展没有名字。)Swift 中的扩展可以:1. 添加计算型属性和计算静态属性2. 定义实例方法和类型方法原创 2014-12-23 16:13:47 · 596 阅读 · 0 评论 -
7.Swift-闭包
闭包是功能性自包含模块,可以在代码中被传递和使用。 Swift 中的闭包与 C 和 Objective-C中的 blocks 以及其他一些编程语言中的 lambdas 比较相似。 闭包可以捕获和存储其所在上下文中任意常量和变量的引用。 这就是所谓的闭合并包裹着这些常量和变量,俗称闭包。Swift会为您管理在捕获过程中涉及到的内存操作。 在 函数 章节中介绍的全局和嵌套函数实际原创 2014-12-08 13:18:41 · 612 阅读 · 0 评论 -
8.Swift-枚举
枚举定义了一个通用类型的一组相关的值,使你可以在你的代码中以一个安全的方式来使用这些值。 如果你熟悉 C 语言,你就会知道,在 C 语言中枚举指定相关名称为一组整型值。Swift 中的枚举更加灵活,不必给每一个枚举成员(enumeration member)提供一个值。如果一个值(被认为是“原始”值)被提供给每个枚举成员,则该值可以是一个字符串,一个字符,或是一个整型值或浮点值。原创 2014-12-08 17:45:32 · 692 阅读 · 0 评论 -
9.Swift-类和结构体
类和结构体是人们构建代码所用的一种通用且灵活的构造体。为了在类和结构体中实现各种功能,我们必须要严格按照对于常量,变量以及函数所规定的语法规则来定义属性和添加方法。 与其他编程语言所不同的是,Swift 并不要求你为自定义类和结构去创建独立的接口和实现文件。你所要做的是在一个单一文件中定义一个类或者结构体,系统将会自动生成面向其它代码的外部接口。 注意:通常一个类的实例被称为对象。原创 2014-12-09 11:42:01 · 612 阅读 · 0 评论 -
10.Swift-属性
属性将值和特定的类、结构体或枚举关联。存储属性存储常量和变量作为实例的一部分,计算属性计算(而不是存储)一个值。计算属性可以用于类、结构体和枚举,存储属性只能用于类和结构体。存储属性和计算属性通常和特定类型的实例关联,但是,属性也可以和自己的类型关联。这类属性叫类型属性。另外,你还可以定义属性监视器来监控属性值的变化,以此来触发一个自定义的操作。属性监视器可以添加到自己定义原创 2014-12-09 17:40:42 · 599 阅读 · 0 评论 -
22.Swift-泛型
泛型代码可以让你写出根据自我需求定义、适用于任何类型的,灵活且可重用的函数和类型。它可以让你避免重复的代码,用一种清晰和抽象的方式来表达代码的意图。 泛型是 Swift 强大特征中的其中一个,许多 Swift 标准库是通过泛型代码构建出来的。事实上,泛型的使用贯穿了整本语言手册,只是你没有发现而已。例如,Swift 的数组和字典类型都是泛型集。你可以创建一个Int数组,也可创建一个Stri原创 2014-12-26 13:58:22 · 809 阅读 · 0 评论 -
11.Swift-方法
方法是与特定类型相关联的函数。类、结构体和枚举都可以定义实例方法,实例方法为给特定类型的实例封装了具体的任务与功能。类、结构体和枚举也可以定义类型方法,类型方法与类型本身相关联。类型方法与Objectives-C的类方法相似。结构体和枚举能够定义方法是Swift与C或Objective-C的主要区别之一。在OC中,类是唯一可以定义方法的类型。但是在Swift中,你不仅能选择是否要定义一个类、结原创 2014-12-10 14:14:33 · 600 阅读 · 0 评论 -
13.Swift-继承与重写
一个类可以继承另一个类的方法、属性和其他特性。在Swift中,继承是类区分与其他类型的一个基本特性。在Swift中,子类可以调用和访问父类的方法、属性和附属脚本,并且可以通过重写这些方法、属性和附属脚本来优化和修改它们的行为。Swift会检查你的重写定义在父类中是否有匹配的定义来确保你的重写行为是正确的。类也可以为从父类中继承来的属性添加属性监视器,当属性值改变时,类就会被通知到。可以为任原创 2014-12-11 15:57:29 · 2789 阅读 · 0 评论 -
12.Swift-附属脚本(Subscripts)
类、结构体和枚举可以定义附属脚本, 附属脚本是访问集合、列表或者队列的元素的快捷方式。你可以使用 附属脚本来设置和获取值而不需要单独的设置和获取方法。比如你可以通过someArray[index]的方式访问数组元素和通过someDictionary[key]的方式访问字典中的元素。对于同一个目标可以定义多个 附属脚本,通过索引值类型的不同来进行重载,而且索引值的个数可以是多个。一、原创 2014-12-10 18:07:17 · 1019 阅读 · 0 评论 -
14.Swift-构造过程Initialization
构造过程是为了使用某个类、结构体或枚举类型的实例而进行的准备过程。这个过程包含了为实例中的每个属性设置初始值和为其执行必要的准备和初始化任务。 构造过程是通过定义构造器(Initializers)来实现的,这些构造器可以看做是用来创建特定类型实例的特殊方法。与 Objective-C 中的构造器不同,Swift 的构造器无需返回值,它们的主要任务是保证新实例在第一次使用前完成正确的初始化。原创 2014-12-13 13:30:00 · 788 阅读 · 0 评论 -
21.Swift-协议
Protocol(协议)定义方法、属性和其他为了完成某个特殊功能的要求的蓝图。协议并不提供任何具体实现,只描述了实现将会是什么样子。协议可以被类、结构体或者枚举遵守,并根据协议要求,提供具体的实现。 遵循者需要提供协议指定的成员,如属性,方法,操作符,下标等。一、协议语法协议的定义与类,结构体,枚举的定义非常相似,如下所示:protocol SomeProtocol{原创 2014-12-24 15:13:10 · 1202 阅读 · 0 评论 -
6.Swift-函数
一、函数的定义和调用Swift中通过func关键字定义方法,->后面紧跟函数返回值类型。func sayHello(personName:String) -> String { let greeeting = "Hello," + personName + "!" return greeeting}sayHello("Anna")sayHello("原创 2014-12-06 13:35:02 · 739 阅读 · 0 评论 -
5.Swift-控制流
Swift提供了类似C语言的流程控制结构,包括可以多次执行任务的for和while循环,基于特定条件选择执行不同代码分支的if和switch语句,还有控制流程跳转到其他代码的break和continue语句。Swift 的 switch 语句比 C 语言中更加强大。在 C 语言中,如果某个 case 不小心漏写了 break,这个 case 就会“掉入”下一个 case,Swift 无需写 b原创 2014-12-05 14:40:37 · 1091 阅读 · 0 评论 -
16.Swift-ARC
Swift使用自动引用计数(ARC)来跟踪并管理应用使用的内存。大部分情况下,不需要自己去考虑内存管理的事情。然而,在少数情况下,为了自动的管理内存空间,ARC需要了解关于你的代码片段之间关系的更多信息。 注意:引用计数只应用在类的实例。结构体(Structure)和枚举类型是值类型,并非引用类型,不是以引用的方式来存储和传递的。一、ARC是如何工作的每次创建一个类的实例,原创 2014-12-15 19:13:00 · 636 阅读 · 0 评论 -
17.Swift-可选链接(Optional Chaining)
可选链接(Optional Chaining)是一种可以请求和调用属性、方法及子脚本的过程,它的可选性体现于请求或调用的目标当前可能为空(nil)。如果可选的目标有值,那么调用就会成功;相反,如果可选的目标为空(nil),则这种调用将返回空(nil)。多次请求或调用可以被链接在一起形成一个链,如果任何一个节点为空(nil)将导致整个链失效。 注意: Swift的可选链接和Objective原创 2014-12-17 18:31:37 · 783 阅读 · 0 评论 -
2.Swift-基本运算符
Swift支持大部分标准C语言的运算符, 且改进许多特性来减少常规编码错误. 如, 赋值符 = 不返回值, 以防止错把等号 == 写成赋值号 = 而导致Bug. 数值运算符( + , -, *, /, %等)会检测并不允许值溢出, 以此来避免保存变量时由于变量大于或小于其类型所能承载的范围时导致的异常结果. 当然允许你选择使用Swift的溢出运算符来玩溢出. 具体使用请移步溢出运算符. 区原创 2014-12-02 11:37:54 · 655 阅读 · 0 评论 -
1.Swift-基础
Swift:Swift 是 建立在C和Objective-C的基础之上的一门iOS 和 OS X 应用开发的一门新语言。它采纳了安全编程模式,并加入了现代语言的特点,使编程变得更加简单和有趣了。它采用了ARC模式,使内存管理变得更加简单。Swift语言对于编程新手非常的友好,它支持playgrounds,让开发者不用运行程序就可以直接看到结果。Swift是未来苹果软件开发的一门新的语言,所以学习S原创 2014-12-01 17:00:11 · 755 阅读 · 0 评论 -
23.Swift-访问控制
访问控制可以限定你在源文件或模块中访问代码的级别,也就是说可以控制哪些代码你可以访问,哪些代码你不能访问。这个特性可以让我们隐藏功能实现的一些细节,并且可以明确的指定我们提供给其他人的接口中哪些部分是他们可以使用的,哪些是他们看不到的。 你可以明确的给类、结构体、枚举、设置访问级别,也可以给属性、函数、初始化方法、基本类型、下标索引等设置访问级别。协议也可以被限定在一定的范围内使用,包括协原创 2015-01-07 20:35:35 · 639 阅读 · 0 评论 -
3.Swift-字符串和字符
Swift 的 String 类型与 Foundation NSString 类进行了无缝桥接。如果您利用 Cocoa 或 Cocoa Touch 中的 Foundation 框架进行工作,整个 NSString API 都可以调用您创建的任意 String 类型的值,除了本章介绍的String特性。您也可以在任意要求传入NSString 实例作为参数的 API 中使用 String 类型的值进行原创 2014-12-03 15:14:31 · 1135 阅读 · 0 评论 -
4.Swift-集合类型
Swift中提供了两种集合类型:数组和字典。Swift语言里的数组和字典中存储的数据值类型必须明确。 这意味着我们不能把不正确的数据类型插入其中。 同时这也说明我们完全可以对获取出的值类型非常自信。 Swift对显式类型集合的使用确保了我们的代码对工作所需要的类型非常清楚,也让我们在开发中可以早早地找到任何的类型不匹配错误。同样的,数组和字典是否可变,取决于你定义的时候是用的let还是var。原创 2014-12-03 19:36:57 · 794 阅读 · 0 评论 -
19.Swift-类型嵌套
枚举类型常被用于实现特定类或结构体的功能。同样地,也能够在有多种变量类型的环境中方便地定义通用类或结构体。为了实现这种功能,Swift允许你定义类型嵌套,可以在枚举类型、类和结构体中定义支持嵌套的类型。 要在一个类型中嵌套另一个类型,将需要嵌套的类型的定义写在被嵌套类型的区域{}内,而且可以根据需要定义多级嵌套。一、类型嵌套实例下面这个例子定义了一个结构体Blackjack原创 2014-12-19 16:15:15 · 622 阅读 · 0 评论 -
24.Swift-高级运算符
不同于C语言中的数值计算,Swift的数值计算默认是不可溢出的。溢出行为会被捕获并报告为错误。你是故意的?好吧,你可以使用Swift为你准备的另一套默认允许溢出的数值运算符,如可溢出加&+。所有允许溢出的运算符都是以&开始的。比如:let x = 1let y = x &/0 是允许的。Swift中的高级运算符跟其他语言里面差不多,区别是默认是不允许溢出的,编译器会报错,但原创 2015-01-28 17:37:57 · 660 阅读 · 0 评论 -
18.Swift-类型转换
类型转换是一种检查实例类型并且/或者检查是否可以将这个实例作为它类层次结构中的某个不同的父类或者子类的方式。类型转换在Swift中使用is 和 as操作符实现。这两个操作符提供了一种简单达意的方式去检查值的类型或者转换它的类型。你也可以用类型转换来检查一个类是否实现了某个协议,详细内容请查阅协议实现的检查这一章节 。一、定义一个类层次来作类型转换你可以将它用在类和子类的层次原创 2014-12-18 20:28:48 · 752 阅读 · 0 评论 -
15.Swift-反初始化过程Deinitialization
在一个类的实例被释放之前,反初始化函数被立即调用。用关键字deinit来标示反初始化函数,类似于初始化函数用init来标示。反初始化函数只适用于类类型。一、反初始化是如果工作的Swift会自动释放不再需要的实例以释放资源。如自动引用计数那一章描述,Swift通过自动引用计数(ARC)处理实例的内存管理。通常当你的实例被释放时不需要手动的去清理。但是,当使用自己的资源时,你可能需要进原创 2014-12-13 15:46:54 · 601 阅读 · 0 评论