Swift Struct 的引用计数

Cru*_*ruz 2 struct reference-counting wwdc swift

我有一个关于结构的问题

WWDC2016,session推荐使用struct(值类型)

但如果结构体还有 3 个内联变量字,则结构体必须管理引用计数以将大值存储到堆

那么我的问题是
当结构体有 3 个另一个结构体并且每个结构体有 2 或 3 个另一个结构体或值类型时

我想知道在这种情况下是否使用引用计数它是如何工作的

下面是结构体的例子

struct ViewModel {
     var titleModel: TitleModel
     var contentModel: ContentModel
     var layoutModel: LayoutModel
}

struct TitleModel {
     var text: String
     var width: Float
     var height: Float
}

struct ContentModel {
     var content: String
     var width: Float
     var height: Float
}

struct LayoutModel {
     var constant: Float
     var multiply: Float
}
Run Code Online (Sandbox Code Playgroud)

Vat*_*not 5

结构和枚举具有值语义。没有引用计数的概念,因为它们是通过复制传递的。它们的成员可能是指向引用类型的指针,但指针本身被复制。只要结构中没有引用类型,就不需要担心引用计数。

当然,有人可能会说 Swift 在内部使用了伪装成结构的引用类型(例如等)的写时复制优化,但它们实现了Array值语义。Dictionary