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)
结构和枚举具有值语义。没有引用计数的概念,因为它们是通过复制传递的。它们的成员可能是指向引用类型的指针,但指针本身被复制。只要结构中没有引用类型,就不需要担心引用计数。
当然,有人可能会说 Swift 在内部使用了伪装成结构的引用类型(例如等)的写时复制优化,但它们实现了Array值语义。Dictionary
| 归档时间: |
|
| 查看次数: |
2461 次 |
| 最近记录: |