08 2021 档案
摘要:做过OC与swift混编的都知道,若实现swift调用OC的方法或OC调用swift方法,需要建立一个桥接文件,例如命名:MyBridging.h,在Build Settings中添加配置Swift Compiler - General中的Objective-C Bridging Header:My
阅读全文
摘要:我们知道swift中的数组类型为Array<Element>,它用于存储不同类型的元素,并且它是一个结构体struct,因此它是一个值类型,拥有写时拷贝特性。apple为我们提供了ManagedBuffer,用于存储不同类型的元素到缓冲区指针中,因此我们可以通过ManagedBuffer自己实现一个
阅读全文
摘要:我们知道swift值类型的变量在赋值操作后会放生深拷贝,即:赋值拷贝,而class类型的变量只会浅拷贝。我们看一个例子: class MyClass { var list: [Int] init(_ list: [Int]) { self.list = list } } struct MyStruc
阅读全文
摘要:isKnownUniquelyReferenced:用于判断一个AnyObject实例是否只存在唯一的强引用 class MyClass {} 判断MyClass实例存在唯一的强引用的例子: var cls = MyClass() if isKnownUniquelyReferenced(&cls)
阅读全文
摘要:在讲解指针之前,我们先来了解一下内存布局,计算机中的内存都是以字节为单位存储的,但是大部分处理器并不是按字节块来存取内存的。它一般会以双字节,四字节,8字节,16字节甚至32字节为单位来存取内存,我们将上述这些存取单位称为内存存取粒度。所以我们需要通过一种内存对齐方式来存取,这样一方面可以节省内存,
阅读全文
摘要:Combine 是 Apple 对函数响应式编程库的实现,类似于RxSwift,它实现了大部分的RxSwift中的功能,但也存在一部分没有实现的功能,这里有一个Combine与RxSwift功能对照表,点击查看。Combine是SwiftUI的核心库,SwiftUI中的大部分属性包装器,例如@Sta
阅读全文