ios - 自定义委托和数据源 NSObjects 最佳实践
问题描述
所以考虑这种情况,我有一个UIViewController
包含一个简单的UICollectionView
,但Delegate & DataSource
协议NSObject
与UIViewController
.
它看起来像这样
class MainCollctionViewDelegate: NSObject, UICollectionViewDelegate
class MainCollectionViewDataSrouce: NSObject, UICollectionViewDataSource
我UIViewController
像这样在我的内部使用它们,
lazy var CVDelegate = MainCollctionViewDelegate()
lazy var CVDataSource = MainCollectionViewDataSrouce()
//MARK: - Life Cycle
override func viewDidLoad() {
super.viewDidLoad()
collectionView.registerCell(PlainCell.self) // register custom cell Nib into collection View.
collectionView.delegate = CVDelegate //Set Deleagte
collectionView.dataSource = CVDataSource // Set data Source
}
这种方法将来会导致任何内存泄漏吗?考虑到我将来会实现注入来填充数据源,CollectionView
就像这样。
MainCollectionViewDataSrouce(with: Foo) // Foo is some data to populate the collection with.
有更好的做法吗?考虑到我正在尝试实现最少的代码编写(冗余)。
注意:这也适用于
UITableViewDelegate
&UITableViewDataSource
解决方案
推荐阅读
- java - 数据库或ORM设置的SQL行创建和修改时间?
- javascript - post fetch 方法无法使用占位符 typicode
- r - 带有 Tensorflow 后端的 Keras 不使用 GPU
- flutter - 颤振滑块应仅在使用拇指栏拖动时滚动
- javascript - 在 react native 中使用 axios 发送数据的问题
- python - 将 STDOUT 和 STDERR 重定向到 python logger 和 jupyter notebook
- xamarin - 与 listview 绑定的 observableCollection 的 Xamarin 返回索引
- flask - 用于搜索引擎的 Solr apache 服务器和 python 烧瓶
- php - for 循环内的多重比较不会破坏 php 代码。为什么?
- botframework - window.WebChat.createCognitiveServicesSpeechServicesPonyfillFactory(...).then 不是函数