2016-01-22 29 views
0

我在考慮繼承UICollectionView並將其設置爲自己的委託並編寫自己的委託包裝器。內存方面是否安全? (該對象將指向自身)設置視圖作爲他們自己的代表swift

+0

沒有內存問題,但它可能會導致難以使用或難以維護的代碼。收集視圖需要在某個時刻與其他對象進行協調,並且不需要代理將會很困難。 –

回答

0

這將是可能的,如前所述,但遵循MVC和其他類似的良好開發模式,保持數據源和委託與視圖分離是一個好主意。否則,您將走向一條難以測試代碼的路徑,並混合數據和視圖之間的界限。這種影響可能與您目前的計劃並不一致,但可能會稍後。 通過子類化集合視圖,您還將放棄視圖生命週期回調,包括viewDidLoad和viewWillAppear等,這些可以用來設置視圖。如果你想實現自己的數據源和委託包裝器,至少需要子類UICollectionViewController。這樣您就可以在不違反良好規範的情況下自定義行爲。

0

我覺得沒有問題,即(內存明智)作爲委託和數據源vaiables是weak

weak public var delegate: UICollectionViewDelegate? 
weak public var dataSource: UICollectionViewDataSource? 
0

只要你有一個有另一個類強烈的參考意見,你應該沒有問題。視圖將保存在內存中,直到父類釋放它,或者父類本身被處置。

相關問題