gpt4 book ai didi

ios - 创建 n 个对象数组 (UILabel) 并将它们映射到另一个字符串数组

转载 作者:搜寻专家 更新时间:2023-11-01 06:55:52 24 4
gpt4 key购买 nike

我面临两个问题。我想创建一个 UILabel 数组。我试过:

private var weekdayLabels = [DayLabel](重复:DayLabel(),计数:7),但它使用相同的 DayLabel() 实例。

我最终使用了另一个更丑陋的解决方案:

(0...6).forEach { _ in
weekdayLabels.append(DayLabel())
}

有没有办法让 [DayLabel](repeating: DayLabel(), count: 7) 工作?

第二个问题出现在将带有工作日名称的 String 数组映射到我的 [UILabel] 数组时:

weekdayLabels.enumerated().forEach {
$0.element.text = weekdayNames[$0.offset]
}

我相信一定有更好的方法将 String 映射到 UILabel().text。我说得对吗?

最佳答案

  1. Array(repeating:count:)真的意味着重复。 repeating 的表达式参数只被评估一次。使用 (0..<count).map相反。

  2. 使用 zip将每个标签与相应的字符串配对。

代码:

weekDayLabels = (0..<7).map { _ in DayLabel() }

let weekDayNames = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]
zip(weekDayLabels, weekDayNames).forEach { label, dayName in
label.text = dayName
}

关于ios - 创建 n 个对象数组 (UILabel) 并将它们映射到另一个字符串数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53432127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com