我已经从 JSON 文件下载了一些数据,现在将其放在专门为此数据制作的对象中。我现在想在单击时获取 CollectionView 中的数据,我是否必须使该数据全局可用于所有函数和类,或者是否有一种方法可以获取 CollectionView 中的数据,而无需每次都从服务器下载数据你点击collectionView?
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
var sliderArray = [UISlider]()
sliderValueDidChange(data: ? index: indexPath.row slider: sliderArray)
}
func sliderValueDidChange(data: [class] slider:[UISlider]){
data[index]
slider.minimumValue = data[index].value
}
类似的东西,但我的意思是如何将数据获取到collectionView中而不使其全局可用于所有其他函数?
最佳答案
当您下载数据时,您可以将其存储为 View Controller 的变量(属性)。
Collection View 委托(delegate) didSelectItemAt 函数将访问此字段,就像您在上面的示例中所做的那样。
此属性只能在 View Controller 内访问(您可以将其设置为“私有(private)”,以便它不能在 View Controller 本身之外使用)。通过这样做,所有函数和类都无法访问它,正如您所说的要避免的那样。
为了避免将数据存储为 View Controller 的属性,您可能希望将其移至网络(下载代码)和 Collection View 委托(delegate)有权访问的另一个类。
关于ios - 获取 CollectionView 中的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48885794/