You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在UITableView的numberOfRowsInSection函数中按条件返回整数值

解决方案:根据section标题动态返回表格行数

先明确你的需求:

若标签标题包含stadiumName的值,numberOfRowsInSection函数需返回first!.count;若标签标题包含countryName的值,该函数需返回3。

结合你给出的代码片段,我帮你补全并优化了逻辑,避免强制解包带来的崩溃风险:

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    let pfile = Bundle.main.path(forResource: "scheduling", ofType: "plist")
    let indexes = defaults.integer(forKey: "index")
    let indexes2 = defaults.integer(forKey: "index2")
    
    // 👇 替换成你实际获取stadiumName、countryName的逻辑
    guard let stadiumName = someWayToGetStadiumName(),
          let countryName = someWayToGetCountryName(),
          // 获取当前section的标题
          let sectionTitle = tableView.dataSource?.tableView?(tableView, titleForHeaderInSection: section) else {
        // 标题或名称获取失败时的默认返回值
        return 0
    }
    
    // 👇 替换成你实际获取first数组的逻辑(比如从plist解析得到)
    if sectionTitle.contains(stadiumName) {
        guard let first = someWayToGetFirstArray() else {
            return 0
        }
        return first.count
    } else if sectionTitle.contains(countryName) {
        return 3
    } else {
        // 其他section的默认行数
        return 0
    }
}

几个关键注意点:

  • 绝对不要用first!.count这种强制解包写法,一旦first为空会直接崩溃,用guard let做安全校验才是稳妥的做法。
  • 你需要把代码里的someWayToGetStadiumName()、someWayToGetCountryName()、someWayToGetFirstArray()替换成你实际的取值逻辑——比如从plist文件解析数据、或者从其他存储容器里读取这些值。
  • 如果section标题可能为空,一定要提前做判断,避免调用contains方法时出现异常。

内容的提问来源于stack exchange,提问作者jamryu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:25:51