【发布时间】:2021-05-16 04:35:51
【问题描述】:
为了在collectionView 的单元格中查看我的数据,我使用 MVC 架构来保持代码整洁
现在我有一个名为TimeSelModel 的类,它的句柄具有模型函数
它的结构是这样的
struct Section<T> {
let model: [T]
}
struct TimeSelModel {
let hour: String
let minute: String
}
let dataSec0 = [
TimeSelModel(hour: "09", minute: ":30"),
TimeSelModel(hour: "17", minute: ":00")
]
let dataSec1 = [
TimeSelModel(hour: "12", minute: ":00"),
TimeSelModel(hour: "19", minute: ":00")
]
我以这种方式使用这些数据在collectionView中使用它
private var data: [Section<TimeSelModel>] = []
private func fetchData() -> Void {
data = [Section(model: dataSec0), Section(model: dataSec1)]
}
func numberOfSections(in collectionView: UICollectionView) -> Int { data.count }
func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int {
data[section].model.count }
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = collectionView.dequeueReusableCell(withReuseIdentifier: TimeSelCell.cellID, for: indexPath) as! TimeSelCell
cell.dataModel = data[indexPath.section].model[indexPath.item]
return cell
}
现在我需要在一个单独的函数中将string 与我正在使用的模型值进行比较
例如,我需要将 string 与模型值中的值 "12" 进行比较
let dataSec0 = [
TimeSelModel (hour: "09", minute: ": 30"),
TimeSelModel (hour: "17", minute: ": 00")
]
let dataSec1 = [
TimeSelModel (hour: "12", minute: ": 00"),
TimeSelModel (hour: "19", minute: ": 00")
]
将它放入我的控制器的最佳和最干净的方法是什么?
【问题讨论】:
-
这个问题很不清楚。比较什么?
hour或minute或两者兼而有之?比较相等还是大于还是小于?过滤对象还是找到第一个?结果应该是什么?请编辑问题并添加更多信息。 -
@vadian 让我举一个更清楚的例子。简而言之,我在 String 中得到当前时间,结果是 "17:00" 。此时我需要知道我的
collectionView中是否存在“17:00”并选择显示“17:00”的单元格 -
@vadian 我不知道是否正确使用例如
data[section].model[0].hour我想知道是否有正确的方法来解决问题 -
我的 collectionView 在两个部分中都有 2 个部分,时间根据逻辑进行划分.. 这就是为什么使用 Section 以特定方式显示数据的原因
标签: ios swift string model-view-controller model