原创文章,欢迎转载。转载请注明:关东升的博客Swift中的继承只能发生在类上,不能发生在枚举和结构体上。一个类可以继承另一个类的方法、属性、下标等特征,当一个类继承其他类时,继承类叫子类,被继承类叫父类(或超类)。子类继承父类后,可以重写父类的方法、属性、下标等特征。为了了解继承性,看这样一个场景:...
原创文章,欢迎转载。转载请注明:关东升的博客与构造过程相反,实例最后释放的时候,需要清除一些资源,这个过程就是析构过程。在析构过程中也会调用一种特殊的方法deinit,称为析构函数。析构函数deinit没有返回值,也没有参数,也不需要参数的小括号,所以不能重载。下面看看示例代码:class Rect...
原创文章,欢迎转载。转载请注明:关东升的博客结构体和类的实例在构造过程中会调用一种特殊的init方法,称为构造函数。构造函数没有返回值,可以重载。在多个构造函数重载的情况下,运行环境可以根据它的外部参数名或参数列表调用合适的构造函数。默认构造函数结构体和类在构造过程中会调用一个构造函数,即便是没有编...
原创文章,欢迎转载。转载请注明:关东升的博客静态方法与静态属性类似,Swift中定义了静态方法,也称为类型方法。静态方法的定义与静态属性类似,枚举和结构体的静态方法使用的关键字是static;类静态方法使用的关键字是class或static,如果使用static定义,则该方法不能在子类中被重写(ov...
原创文章,欢迎转载。转载请注明:关东升的博客为了监听属性的变化,Swift提供了属性观察者。属性观察者能够监听存储属性的变化,即便变化前后的值相同,它们也能监听到。属性观察者主要有以下两个: willSet:观察者在修改之前调用。 didSet:观察者在修改之后立刻调用。属性观察者的语法格式如下...
原创文章,欢迎转载。转载请注明:关东升的博客 计算属性本身不存储数据,而是从其他存储属性中计算得到数据。计算属性概念:计算属性提供了一个getter(取值访问器)来获取值,以及一个可选的setter(设置访问器)来间接设置其他属性或变量的值。计算属性的语法格式如下:面向对象类型 类型名 { ...
原创文章,欢迎转载。转载请注明:关东升的博客Swift中的属性分为存储属性和计算属性,存储属性就是Objective-C中的数据成员,计算属性不存储数据,但可以通过计算其他属性返回数据。存储属性可以存储数据,分为常量属性(用关键字let定义)和变量属性(用关键字var定义)。存储属性概念:我们在前面...
原创文章,欢迎转载。转载请注明:关东升的博客类和结构体非常相似,很多情况下没有区别。如果你是设计人员在进行系统设计时候,是将某种类型设计成为类还是结构体?类和结构体异同:类和结构体都有如下功能: 定义存储属性 定义方法 定义下标 定义构造函数 定义扩展 实现协议只有类才有的功能: ...
原创文章,欢迎转载。转载请注明:关东升的博客访问级别:Swift提供了3种不同访问级别,对应的访问修饰符为:public、internal和private。这些访问修饰符可以修饰类、结构体、枚举等面向对象的类型,还可以修饰变量、常量、下标、元组、函数、属性等内容。 public。可以访问自己模块中...
原创文章,欢迎转载。转载请注明:关东升的博客在使用可选类型和可选链时,多次使用了问号(?)和感叹号(!),但是它们的含义是不同的,下面我来详细说明一下。1. 可选类型中的问号(?)声明这个类型是可选类型,访问这种类型的变量或常量时要使用感叹号(!),下列代码是显示拆包:let result1: Do...
原创文章,欢迎转载。转载请注明:关东升的博客 在Swift程序表达式中会看到问号(?)和感叹号(!),它们代表什么含义呢?这些符号都与可选类型和可选链相关,下面来看看可选链。可选链: 类图: 它们之间是典型的关联关系类图。这些类一般都是实体类,实体类是系统中的人、...
原创文章,欢迎转载。转载请注明:关东升的博客Swift中的类和结构体定义的语法是非常相似的。类使用class关键词定义类,使用struct关键词定义结构体,它们的语法格式如下:class 类名 { 定义类的成员}struct 结构体名 { 定义结构体的成员}从语法格式上看,Swift中的...
原创文章,欢迎转载。转载请注明:关东升的博客Swift中的枚举可以定义一组常量、提高程序的可读性;还具有面向对象特性。使用enum关键词声明枚举类型,具体定义放在一对大括号内,枚举的语法格式如下:enum 枚举名{ 枚举的定义}“枚举名”是该枚举类型的名称。它首先应该...
原创文章,欢迎转载。转载请注明:关东升的博客 闭包表达式可以作为函数的参数传递,如果闭包表达式很长,就会影响程序的可读性。尾随闭包是一个书写在函数括号之后的闭包表达式,函数支持将其作为最后一个参数调用。 下面我们来看一个示例代码:func calculate(opr: Stri...
原创文章,欢迎转载。转载请注明:关东升的博客我给Swift 中的闭包一个定义:闭包是自包含的匿名函数代码块,可以作为表达式、函数参数和函数返回值,闭包表达式的运算结果是一种函数类型。 Swift中的闭包类似于Objective-C 中的代码块、Java中的匿名内部类。使用闭包表达式 ...
原创文章,欢迎转载。转载请注明:关东升的博客 返回值3种形式:无返回值、单一返回值和多返回值。无返回值函数 所谓无返回结果,事实上是Void类型,即表示没有数据的类型。 无返回值函数的语法格式有如下3种形式: func 函数名(参数列表)...