SwiftUI:如何将字符串数组解析为文本

问题描述

我尝试遵循thisthisthis,但是在从字符串数组获取数据时遇到问题。

我的状态设置为

 businessHours = : [
    "Monday: 7:00 AM – 7:00 PM","Tuesday: 7:00 AM – 7:00 PM","Wednesday: 7:00 AM – 7:00 PM","Thursday: 7:00 AM – 7:00 PM","Friday: 7:00 AM – 7:00 PM","Saturday: 7:00 AM – 7:00 PM","Sunday: Closed"
 ]

这只会让我从数组中获得第一个元素

ForEach(businessHours.indices) {
    Text(self.businessHours[$0])
}

这失败了

ForEach(businessHours.indices) {
    Text(self.businessHours)
}

这在控制台中起作用

for businesshour in businessHours {
print("Hours: \(businesshour).")
}

我在做什么错了?

解决方法

这是一个有效的演示。经过Xcode 12 / iOS 14的测试

enter image description here

struct DemoView: View {
    let businessHours = [
         "Monday: 7:00 AM – 7:00 PM","Tuesday: 7:00 AM – 7:00 PM","Wednesday: 7:00 AM – 7:00 PM","Thursday: 7:00 AM – 7:00 PM","Friday: 7:00 AM – 7:00 PM","Saturday: 7:00 AM – 7:00 PM","Sunday: Closed"
     ]

    var body: some View {
        VStack {
            ForEach(businessHours.indices) {
                 Text(self.businessHours[$0])
            }
        }
    }
}
,

我知道了。

(0..<businessHours.count,id: \.self) { index in
       Text(self.businessHours[index])
}