簡體   English   中英

我什么時候甚至應該迅速將弱引用用於類的對象?

[英]When or should i even use the weak reference for an object of a class in swift?

據我所知,使用了swift的弱引用,因為如果對象變為nil並從中調用方法,它將不會崩潰您的應用程序,而只會被忽略。 但是,允許您的某些代碼在不存在的類對象上調用函數不是一種不好的做法嗎? 僅僅通過良好的代碼來避免這種情況會更干凈嗎?

示例我的意思是:

weak var manager: MyManager?

manager.someFunction()

現在,如果管理對象為nil,它將不會被調用。 我知道編寫這樣的代碼很容易,但這真的是最佳實踐嗎?

對不起,如果以前曾問過這個問題,但我只找到了關於弱和強的解釋。 我之所以這樣問,是因為我的一個朋友告訴我使用弱引用來避免錯誤調用,而且我認為這不是處理nil對象的最佳方法,因為它對我來說似乎是骯臟的代碼。

最主要的一點是,使用weak傳達有關所有權的信息 它還經常用於防止保留周期。

自動將其取消對於某些模式(例如觀察)很有用。

在nil上調用方法是一個略有不同的主題,它通常很方便,並且可以使代碼更簡潔(更簡潔,更易於閱讀)。

為了執行更復雜的邏輯,通常將弱變量分配給一個強變量,以便可以確保整個代碼都能按預期運行,而不會突然用一半的代碼工作。

您得到了一些誤導的信息。

弱不是要進行安全的調用,而是要避免對象實例之間的強循環,這會導致內存泄漏。

安全調用是通過可選的鏈接完成的。

var manager: MyManager?

manager?.someFunction() // this will not raise error if manager is nil

manager!.someFunction() // this raise error if manager is nil

暫無
暫無

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

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