我有一个理论性的问题。
目前我的应用程序使用UICollectionView
来显示对象列表。包含UICollectionView
作为子视图的UIViewController
实现了UICollectionViewDelegate
协议并充当代理和数据源。数据源使用NSFetchedResultsController
提供数据;
在我看来,这不是实现数据源的最佳方法,将其实现为单独的类看起来更好。但问题在于数据源取决于UITextField
中的搜索参数和其他按钮选择,因此每次用户在搜索字段中输入文本或按下“排序”按钮之一时,都应更新数据源(特别是在NSFetchedResultsController
中的fetchRequest)。
所以,最终,我的问题是:是否有任何实现依赖外部参数的数据源的“最佳实践”?我应该为数据源创建单独的类还是保留现有的方式?如果将数据源实现为单独的类-是否应创建datasourcedelegate来在数据源更新时调用自定义委托方法,或者是否有其他解决此问题的方法(我不考虑在数据源更新时使用通知,因为对我来说通知机制是一个更全局的解决方案)?
我不是在寻找最快的方法,我只想找到最正确的理论实现方式。
非常感谢大家的帮助 :)