2015-04-05 61 views
3

Swift中的varweak var有什麼區別?Swift中var和var的區別是什麼

+2

您能澄清Swift書中「弱引用」一節中的哪一部分對您不清楚嗎? – 2015-04-05 20:04:56

+0

我不使用書籍,但在YouTube上觀看視頻, – nonamexd 2015-04-05 20:05:51

+2

@nonamexd我建議您閱讀免費書...它是免費的... – nhgrif 2015-04-05 20:06:05

回答

9

這與ARC如何管理對象的內存有關。

使用var限定參考對象,同時使用weak var限定參考對象。

只要存在對該對象的一個​​或多個強引用,對象就會一直保留在內存中。使用弱參考可以讓您持有對象的引用,而不會增加所謂的「保留計數」。

如果沒有其他內容持有對您的weak var的引用,則該對象將被釋放,並且您的weak var將衰減至nil。 當您僅使用var時,不會發生這種情況,因爲這定義了對該對象的強引用,因此應防止它釋放。

這與「強」與「弱」在Objective-C中的工作方式相同,我建議您閱讀this answer,因爲它完全適用於Swift。

作爲Swift的具體說明,這就是爲什麼聲明爲weak var的任何內容必須是可選類型的原因。

+0

感謝您的好消息! – nonamexd 2015-04-05 20:10:10

相關問題