Swift available 平台判断

Swift 语言中的 `@available` 和 `#available`,Swift 2.0 中,引入了可用性的概念。对于函数,类,协议等,可以使用 `@available` 声明这些类型的生命周期依赖于特定的平台和操作系统版本。而 `#available` 用在判断语句中(if, guard, while 等),在不同的平台上做不同的逻辑。

Swift 类型转换

Swift 语言是一种强类型语言,其整型的强制类型转换就是调用了参数类型对应的整形扩展构造方法,然后通过对应扩展构造方法的处理返回一个当前整形字长的整形值。

Swift 值类型/引用类型

在 Swift 语言中,所有的类型都可以被分为 “值类型” 或者 “引用类型”,可以将其理解为函数参数传递的方式。从程序的角度来看,值类型和引用类型是相对的一个概念。其中的差别就在于:对新的对象产生赋值等指向性的操作之后,再次操作赋值对象或被赋值对象是否会同步于另外一个对象。

Swift 可选型

Swift 语言为我们提供了一种全新的、更加安全的类型 “可选型”。可选型是使用范型枚举的形式来组织的,也就是说此特性可以运用于所有的类型、结构体、类或者其他复杂数据类型。

Swift 泛型

在 Swift 语言中,泛型可以说是用的最广最强大的特性之一,因为在 Swift 语言本身的语言底层大量的使用了泛型。泛型使得同样的操作可以应用于不同的数据类型。

Swift 下标脚本

在访问一个数组实例的元素时,可以使用 `Array[index]` 的形式。在访问一个字典实例的元素时,可以使用 `Dictionary[index]` 的形式。这种方括号的形式就是 “下标脚本”。下标脚本就是对一个东西通过索引,快速取值的一种语法,在 Swift 中,我们可以在类(Class)、结构体(structure)和枚举(enumeration)中自己定义下标脚本的语法。

Swift 闭包

闭包是一个自包含的功能性代码模块。一段程序代码通常由常量、变量和表达式组成,然后使用一对花括号 “{}” 来表示闭合并包裹着这些代码,由这对花括号包裹着的代码块就是一个闭包。通俗的解释就是一个 `Int` 类型里存储着一个整数,一个 `String` 类型包含着一串字符,同样,闭包是一个包含着函数的类型。

Swift 控制流

指令的执行顺序在程序结构中,我们称之为控制流。控制流,也称为控制结构,通常包括:顺序结构、条件结构、循环结构、转向结构。

Swift 表达式

Swift 语言使用表达式来表示程序中的最小单位,通常一个表达式是由数字、字符、运算符、变量、常量、函数调用等可以求得值的有意义的排列组成的组合。根据组合方式的不同,表达式可以分为基本表达式、多元表达式、前缀表达式、后缀表达式。

Swift 基本运算符

Swift 语言支持大部分标准 C 语言的运算符,并且改进了许多特性来使我们的代码更加规范,其中主要包含算数运算符、区间运算符、逻辑运算符、关系运算符、赋值运算符、自增自减运算符、溢出运算符等。

Swift 基本数据类型

Swift 提供了 `Int` 和 `UInt` 两种整数类型,分别表示有符号和无符号的整数类型。另外 `Int` 和 `UInt` 后面可以带有 8、16、32 和 64,以表示 8、16、32、64 位的整数。有符号整型 `Int、Int8、Int16、Int32、Int64`。无符号整形 `UInt、UInt8、UInt16、UInt32、UInt64`。

Swift 基础知识

Swift 是一门强类型语言,全面支持 Unicode 编码。Swift 中的定义和实现是在同一个单元中的,通常一个 Swift 源代码单文件是以 `.swift` 结尾的。Swift 不需要单独编写一个 `main` 函数作为入口,在 Swift 语言中函数是一等成员,编译器会自动将遇到的第一个函数作为入口。Swift 允许我们不用在行尾加分号 `;`。但如果在同一行有两个甚至多个表达式,需要在每个表达式后面加上分号。

HomeKit 智能家居

HomeKit 在那些支持苹果 Home Automation Protocol 和 iOS 设备的附属配件之间实现了无缝集成和融合,从而推进家庭自动化的发展和革新。通过一个通用的家庭自动化设备协议,以及一个可以配置这些设备并与之通信的公开 API,HomeKit 使得 App 用户控制自己的 home 成为可能,而不需要由生产家庭自动化配件的厂商创建。