构造过程是为了使用某个类、结构体或枚举类型的实例而进行的准备过程,在构造过程中,对每个属性进行了初始值预设和其他必要的准备和初始化工作。
与OC相比,swift的构造函数,不需要返回值。同时,在类和结构体的构造过程中,必须对所有的存储类型属性,包含继承自父类的属性,赋予合适的初始值。存储类型值不能处于一个未知状态。
在对属性进行初始化过程中,有两种方法,第一:使用构造方法,第二:在定义属性时,...
分类:
其他好文 时间:
2014-06-22 22:48:43
阅读次数:
340
一 、扩展
扩展是为一个已经存在的类、结构、枚举类型添加新功能的一种方式,包括为不能存取源代码的那些已经存在的类型添加功能。
扩展类似于Objective-C语言中的类别,与类别不同的是Swift语言的扩展没有名字。
扩展能够为已存在类型:
1)增加计算属性和计算静态属性;
2)定义新的实例方法和类型方法;
3)提...
分类:
移动开发 时间:
2014-06-22 20:37:42
阅读次数:
264
一 类型检查
1、 类型检查操作符
类型检查用来检查或转换一个实例的类型到另外的类型的一种方式。
在Swift中,类型检查使用is和as操作符来实现。
is操作符用来检查一个实例是否是某种特定类型,如果是返回true,否则返回false。
as操作符用来把某个实例转型为另外的类型,由于实例的转型可能失败,因此Swift为as操作符提供了两种...
分类:
移动开发 时间:
2014-06-22 20:33:47
阅读次数:
257
选项链是使用选项来查询和调用其属性、方法或下标的一个过程,如果选项包含一个值,则属性、方法、下标的查询和调用成功,否则,调用返回nil。
选项链能用在任何类型的选项来检查对其一个属性、方法、下标的查询和调用是否成功。
选项链可以作为强制展开的替代方式使用,但选项链的使用更加安全,不会触发一个运行时错误。
在调用一个选...
分类:
移动开发 时间:
2014-06-22 20:19:15
阅读次数:
222
在swift中,继承是区分类与其他对象的基本特征
继承后的子类可以重写父类的方法,包括类方法和实例方法,属性和附属脚本(subscript)
在继承过程中,构造器方法init()是不被继承的,需要显示标明
class Tandem: Bicycle {
init() {
super.init()
maxPassengers = 2
} }
子类只可以修改从父类继承来的变量属性,而...
分类:
其他好文 时间:
2014-06-22 19:21:28
阅读次数:
159
协议(Protocols)
协议仅是用定义某些任务或者是功能必须的方法和属性。类似于java里的interface的作用。但协议并不会实现具体的功能。
我猜这个名字源于OO中提到的“契约”,但我并不觉得这名字很好,反而是interface这名字更容被接受,因为我觉得协议这个名字很容易和网络编程的时候的网络协议搞混,网络协议也通常简称为协议。
语法:
protocol...
分类:
其他好文 时间:
2014-06-22 19:20:37
阅读次数:
195
Swift实现的单例安全吗?这里你将看到百万线程如何攻破不安全的单例实现,理论指导加真实测试,让你亲眼看到大量线程抢占资源时的小概率事件发生...
分类:
编程语言 时间:
2014-06-22 18:58:41
阅读次数:
249
扩展
扩展可以让我们给一个已有的类、结构体、枚举等类型添加新功能,包括属性和方法,甚至是构造器,下标,支持协议等等。。。
甚至是我们拿不到源代码的类、结构体、枚举,我们依然可以给它加扩展。。。
看到这里的时候,我还有点小激动呢。。。可是淡定下来之后,觉得这TMD就是个大大的飞线,飞线,飞线。。。这让我们的代码难以理解全面(总要担心是不是哪里还有扩展,我没读到的。。谁会不会在哪...
分类:
其他好文 时间:
2014-06-22 18:45:04
阅读次数:
154
Swift中的变量var常量和let常量
首先介绍一下Swift中的 var 和 let
(1)var 是 variable的缩写形式,是变量的意思 ,是可改变的,并不是数据类型
例如:
注意每个语句后面不用加分号
var i:double=10.0 //将i指为double类型的,变量名后面加个冒号
var i = 10 // 如果不指定类型的话,系统会自动根据你的赋值来判断类型...
分类:
其他好文 时间:
2014-06-22 14:44:50
阅读次数:
176
可选链(Optional Chaining)
我们都知道“可选型”是什么,那么可选链又是什么,举个例子解释一下:
struct MyName{
var name
}
struct MyInfo {
var myName:MyName? = MyName()
}
class MyClass {
var structInstanc...
分类:
其他好文 时间:
2014-06-21 19:58:59
阅读次数:
307