2016-10-28 76 views
0

所以我試圖做一些拋光和分析我的代碼寫在迅速。我有一系列相當詳細的問題,通過搜索諸如弱和強參考等主題,很難找到它們。weak var:test:UIView!有什麼區別?和弱var測試:UIView?在網點?

例如,我沒有看到XCode抱怨下面用於插座的任何一條線。如果有人能夠解釋有什麼區別,關於保持弱引用和內存管理,我將不勝感激。

@IBOutlet weak var mapTab : MKMapView? 

@IBOutlet weak var mapTab : MKMapView! 

難道只是展開或不會修改參考的性質是什麼?

回答

1

後者是隱式解包的可選項。無論什麼時候使用它,你都可以把它看作是一個自動爲你自動完成的力量。如果解壓後的值是nil,這當然會崩潰。

之前是一個常規的可選項,所以你必須明確地處理它自己的解包問題。你可以用guard let,if let,??等等來處理它,或者你可以選擇強制展開它,明確地說,它的行爲與第一種情況類似。

+0

所以我認爲它不會改變任何關於它的引用的性質,對嗎?軟弱? – TheeBen

+0

是的,這是一個正交的概念。您的IBOutlets應該是強有力的參考。無論何時只要將IBOutlets的子視圖提供給其父母,您都只需要弱點以避免強烈的參照週期。然而,首先這是一個糟糕的主意。 – Alexander

+0

正確。感謝您的澄清 – TheeBen

相關問題