[英]Safe to always use [unowned self] for Swift singletons?
由於共享單例實例將始終存在,我們是否可以在該單例類中的所有閉包中安全地使用[unowned self]
?
當然,這是安全的。 但這不是一個好理由。
是否使用弱引用或強引用應基於您正在編寫的函數中的內存管理特性。 例如,如果對象強烈引用閉包,則閉包應捕獲對象的弱引用; 這是安全的,因為沒有其他人有關閉的引用,所以它只能在主對象存活時執行等。如果沒有保留周期,並且閉包被賦予一個單獨的API,以便它不被綁定到主對象的生命周期,那么閉包應該對主對象有一個強引用。 這種推理同樣適用於單身人士和非單身人士。
是的,單身人士對自己有強烈的借鑒意義,不能被處置。
基於此可以肯定地說,您可以安全地創建對它的弱或無主引用。
該類在第一次請求時延遲創建其唯一實例,然后確保不能創建其他實例。 單例類還可以防止調用者復制,保留或釋放實例。
測試它的簡單方法是從主類測試。
在第一個(處置的)類和第二個(新創建的)類之間沒有對單例的引用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.