簡體   English   中英

將視圖設置為自己的代表 swift

[英]Setting views as their own delegates swift

我正在考慮UICollectionView並將其設置為自己的委托並編寫自己的委托包裝器。 就內存而言它安全嗎? (對象將指向自身)

我認為沒有問題(內存方面),因為委托和數據源變量weak

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

如前所述,這是可能的,但要遵循 MVC 和其他類似的良好開發模式,最好將數據源和委托與視圖分開。 否則,您將走上一條難以測試代碼並混淆數據和視圖之間界限的道路。 這對您當前的計划的影響可能並不明顯,但可能會在以后出現。 通過子類化集合視圖,您還將失去視圖生命周期回調,包括 viewDidLoad 和 viewWillAppear 等,這可能對設置您的視圖有用。 如果要實現自己的數據源和委托包裝器,至少要繼承 UICollectionViewController。 這樣您就可以在不破壞良好實踐的情況下自定義行為。

只要你有另一個對視圖有強引用的類,你應該沒有問題。 視圖將保留在內存中,直到父類釋放它,或者父類本身被釋放。

暫無
暫無

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

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