一、什么是KeyPath KeyPath:一个指定类型下的结果值的类型的路径class KeyPath
Async await 是Swift 5.5在WWDC 2021期间出现的新的结构化并发模型。async-awai...[作者空间]
属性包装器给代码之间添加了一层分离层,它用来管理属性如何存储数据以及代码如何定义属性。比如说,如果你有一个提供线程...[作者空间]
一、@State 和一般的存储属性不同,@State 修饰的值,在 SwiftUI 内部会被自动转换为一对 set...[作者空间]
1、Identifiable //A class of types whose instances hold th...[作者空间]
一、关联值为泛型类型 在以上的例子中,关联值是为Success或Failure类型,而Success或Failur...[作者空间]
一、GCD常用的队列和函数 串行队列: 让任务一个接着一个执行(一个任务)let serialQue = Disp...[作者空间]
1、为何要加前缀呢? extension String{func test() {print("测试")}}"测试...[作者空间]
swapTwoInts(::) 函数很实用,但是它只能用于 Int 值。如果你想交换两个 String 值,或者两...[作者空间]
面向协议编程 (Protocol Oriented Programming,以下简称 POP) 是 Apple 在...[作者空间]
一、协议和扩展 1、协议 如果一个类型已经实现了协议的所有要求,但是还没有声明它遵守了这个协议,可以通过扩展来让它...[作者空间]
一、Any和AnyObject Any:可以代表任意类型(枚举、结构体、类,也包括函数类型)AnyObject:可...[作者空间]
协议可以用来定义方法、属性、下标的声明,协议可以被枚举、结构体、类遵守 一、属性 1、协议中定义属性时必须用var...[作者空间]
一、初始化器 指定初始化器 1、指定初始化器是主要的初始化器,每个类至少有一个指定初始化器。2、默认初始化器总是类...[作者空间]
一、初始化器的重写 1、子类重写父类的指定初始化器 当重写父类的指定初始化器时,必须加上override(即使子类...[作者空间]
一、isKind和isMember isKind和isMember属于oc的方法,类型必须是AnyObject 类...[作者空间]