簡體   English   中英

使用數組快速建立強大的參考周期

[英]Swift strong reference cycles with arrays

如果我有一個類A,它的變量x是類B的數組,而類B的父類始終有一個變量y,則如何設置類以避免強引用循環。 如果我放錯了

class A {
weak var x = [B] 
...}

(即使我做到了[B]?),這似乎也是錯誤的放置方式

class B {
weak var y = A
...}

因為B級應始終具有“父級” A級。

我想這是一個標准設置,所以想知道正常模式。 任何幫助,不勝感激。

如果B總是有一個父母,並且父母將確保它不會在其子之前消失,那么您可以使用unowned而不是weak 就是說, unowned有些危險,因為如果您做錯了,它將崩潰。

如果您想更安全一些(或者您不能保證孩子將永遠在父母面前被摧毀),那么正確的模式就是對父母的弱引用。

關鍵在於短語“應始終有一個'父母'”。 如果你的意思應該再使用弱。 如果您的意思是必須使用unowned

雖然可以創建“弱數組”,但這不是一個很好的用法。 在您的示例中,父母“擁有”(強烈引用並保持生命)他們的孩子。 該系統中的孩子沒有“擁有”父母,因此不應有很強的參考意義。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM