Swift
Swift 开发实战
Lucky_William
just do it
展开
-
Swift 高级特性
Swift 高级特性一、Swift 独占访问Swift 内存安全检查:当两个变量访问同一块内存时,会产生独占内存访问限制。发生读写权限冲突的情况:inout 参数读写冲突结构体中函数修改成员属性读写冲突值类型属性读写冲突1. inout 参数读写冲突// 1. Swift inout 参数读写冲突var inputStr = "input"func plusSlef1(_ param: inout String) { // 在 >= Swift4 版本会抛异常原创 2021-11-27 21:03:09 · 1626 阅读 · 0 评论 -
Swift 类型转换、泛型、扩展与协议
Swift5 类型转换、泛型、扩展与协议1. Swift 判断值类型// Swift5 判断值类型var anyObj: Any = 1if anyObj is Int { print("anyObj's type is Int")} else if anyObj is String { print("anyObj's type is String")}2. Swift 判断引用类型// Swift5 判断引用类型class Base { var tex原创 2021-11-25 23:16:46 · 1372 阅读 · 0 评论 -
Swift 内存管理与异常处理
Swift5 内存引用与异常处理1. Swift 内存销毁时机// Swift5 内存销毁时机// 引用类型的内存销毁时机class ClassDemo { var a = "value a" deinit { // 实例被释放 print("deinit class a") }}// 可空类型var ins1: ClassDemo? = ClassDemo()var ins2 = ins1var ins3 = ins2in原创 2021-11-23 22:09:51 · 1801 阅读 · 0 评论 -
Swift 构造方法
Swift5 构造方法1. Swift 类的构造方法// Swift5 类的构造方法// 1. 在构造方法中需要给没有默认值的属性初始化值class Demo1 { // 含有默认值 var param1: String = "default" // 未指定默认值,需要在 init() 中初始化 var param2: String // 未指定默认值,类型为 Optional,可空, // 默认值为 nil, 不需要在 ini原创 2021-11-21 19:21:00 · 1701 阅读 · 0 评论 -
Swift 属性与方法
Swift5 属性与方法1. 存储属性2.3.4.5.6.GitHub 源码:Property&Method.playground原创 2021-11-19 20:57:34 · 1424 阅读 · 0 评论 -
Swift 结构体与类
Swift5 结构体与类在以下情况时推荐使用结构体,其他情况请使用类:只需要少量的简单数据类型的属性在传输数据时需要复制而不是影响原变量不需要继承其他类1. 结构体结构体可以定义属性和方法,像是一组数据类型的集合,不可继承,属于值类型// 定义结构体struct Phone { // 定义价格属性 var price: Int // 定义品牌属性 var brand: String // 定义型号属性原创 2021-11-17 22:23:00 · 1732 阅读 · 1 评论 -
Swift 高级运算符与枚举
Swift5 高级运算符与枚举1. 位运算符// Swift 位运算var sixteen: UInt8 = 0b00010000 // 二进制print(sixteen) // 8// Swift 按位与 & : 操作数相同的位进行逻辑与运算// 即两个对应位的值都为1,结果为1,否则为0。示例:var result1 = sixteen & 0b00001111 // 0var result2 = 0b00000111 & 0b00000001 // 1/原创 2021-11-16 21:48:58 · 1657 阅读 · 0 评论 -
Swift 函数与闭包
Swift 函数与闭包1. 创建函数// 创建函数,无参,无返回值,同 func func1() -> Voidfunc func1() { print("no params func")}func1()// 创建函数,带参,带返回类型func func2(param: Int) -> Bool { return param > 60}func2(param: 80)// 创建函数,带多个参数,返回类型为元组func func3(param1原创 2021-11-11 22:18:28 · 2207 阅读 · 0 评论 -
Swift 运算符、循环、流程控制 for-in, while, if-else, switch-case, guard-else
Swift 运算符、循环、流程控制 for-in, while, if-else, switch-case, guard-else1. 运算符:三目,空合并,区间运算符// 元组比较大小。需要元素个数一致,对应的位置的元素类型相同,每一个元素都必须支持比较运算操作。// 从第一个元素开始比较,如果没有比较出结果,那么继续依次比较,直到比出结果为止。var a = (1, 2, "3")var b = (1, 2, "4")var c = a < b // true// 条件判断i原创 2021-11-09 21:39:03 · 2180 阅读 · 1 评论 -
Swift 字典 Dictionary 集合类型
Swift 字典 Dictionary 集合类型Dictionary 字典集合类型。类似于 Java 的 map。特点:键唯一,值可重复1. 创建字典// 创建空字典var emptyDict1: [Int : String] = [:]var emptyDict2: Dictionary<Int, String> = Dictionary()// 指定键值类型var dict: [Int : String] = [0: "Zero", 1: "One", 2: "Two"原创 2021-11-06 21:07:33 · 1737 阅读 · 0 评论 -
Swift 集合 Set 及常用方法
Swift 集合 Set 及常用方法1. 创建Set集合// 创建Setvar set: Set<Int> = [1, 2, 3]var set2 = Set(arrayLiteral: 1, 2, 3)2. 获取元素// set 获取最小值set.min()// 获取第一个元素,顺序不定set[set.startIndex]set.first// 通过下标获取元素,只能向后移动,不能向前// 获取第二个元素set[set.index(after: set.原创 2021-11-05 21:58:18 · 1691 阅读 · 0 评论 -
Swift 数组及常用方法
Swift 数组及常用方法1. 创建数组// 创建整型数组var array1: [Int] = [] // []var arrya2: Array<Int> = [1, 2, 3] // [1, 2, 3]var arryaInt = [1, 2, 3] // [1, 2, 3]var array3 = Array(arrayLiteral: 1, 2, 3) // [1, 2, 3]2. 快捷创建重复元素的数组var array4 = Array(repeating: "s原创 2021-11-03 23:25:53 · 3264 阅读 · 0 评论 -
Swift 字符串类型及常用方法
Swift 字符串类型及常用方法1. 构造// 直接赋值text = ""// 1. 构造方法text = String() // ""// 字符串构造text = String("William") // "William"// 整型构造text = String(888) // "888"// 浮点型构造text = String(8.88) // "8.88"// 字符构造text = String("a") // "a"// 布尔型构造text = String(tr原创 2021-10-31 21:46:23 · 996 阅读 · 0 评论 -
Swift 基本数据类型
Swift 基本数据类型有以下几种基本数据类型:整型浮点型布尔型元组可选值 Optional整型var intType: Int = 11print(intType) // 11浮点型var floatType: Float = 3.14e3 // 10进制中,e表示10的n次方,3.14 * (10^3) = 3140.0print(floatType) // 3140.0 var floatType2: Float = 0x2p3 // 16进制中,p表示2的n次原创 2021-10-30 21:30:34 · 997 阅读 · 2 评论