2

構造体について質問があります

WWDC2016 では、sturct (値型) の使用がセッションで推奨されています。

ただし、構造体にさらに 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
}
4

2 に答える 2

5

構造体と列挙には、値のセマンティクスがあります。コピーによって渡されるため、参照カウントの概念はありません。それらのメンバーは参照型へのポインターである場合がありますが、ポインター自体はコピーされます。構造体に参照型がない限り、参照カウントについて心配する必要はありません。

確かに、Swift は内部的に構造体として偽装された参照型 (例:など) を使用してコピー オン ライトの最適化を使用していると主張する人もいるかもしれませんが、それらArrayは値のセマンティクスを実装しています。Dictionary

于 2016-07-19T11:31:53.530 に答える