Reference cycles with value types?

后端 未结 6 1410
太阳男子
太阳男子 2020-12-03 08:34

Reference cycles in Swift occur when properties of reference types have strong ownership of each other (or with closures).

Is there, however, a possibility of havin

6条回答
  •  星月不相逢
    2020-12-03 08:39

    A reference cycle (or retain cycle) is so named because it indicates a cycle in the object graph:

    retain cycle

    Each arrow indicates one object retaining another (a strong reference). Unless the cycle is broken, the memory for these objects will never be freed.

    When capturing and storing value types (structs and enums), there is no such thing as a reference. Values are copied, rather than referenced, although values can hold references to objects.

    In other words, values can have outgoing arrows in the object graph, but no incoming arrows. That means they can't participate in a cycle.

提交回复
热议问题