SwiftUI 中对成员“索引”的错误引用不明确
Posted
技术标签:
【中文标题】SwiftUI 中对成员“索引”的错误引用不明确【英文标题】:Error Ambiguous reference to member 'indices' in SwiftUI 【发布时间】:2020-02-28 04:23:59 【问题描述】:我正在尝试遍历从我的 API 收到的所有日期,并将它们转换为我的应用程序可用的格式。我在这段代码中遇到了错误
ForEach(dateList.indices, id: \.self) date in
self.que = "";
for letter in dateList[date]
if letter == "T"
dateList[date] = self.que
return
else if letter == "-"
self.que = self.que + "/"
else
self.que = self.que + letter;
我正在尝试对 dateList 数组中的每个字符串进行迭代,并将其转换为可在我的应用程序中使用的格式。此格式将从 2020-02-28T03:32:44Z 变为 2020/02/28。我收到错误“对成员'索引'的模糊引用”,我不确定这意味着什么。
【问题讨论】:
您应该使用DateFormatter 从字符串中检索日期。 【参考方案1】:struct ForEach
仅用于显示视图:
/// A structure that computes views on demand from an underlying collection of
/// of identified data.
@available(ios 13.0, OSX 10.15, tvOS 13.0, watchOS 6.0, *)
public struct ForEach<Data, ID, Content> where Data : RandomAccessCollection, ID : Hashable ...
例如你可以用它来显示一些List
的行
List
ForEach(dateList.indices, id: \.self) dateIndex in Text("\(self.dateList[dateIndex])")
这与计算que
之类的变量无关,您应该将此计算提取到某个函数中并从onAppear
中调用它。这是ForEach
和forEach
区别的一个小例子:
struct SomeLoopData: View
@State var dates = ["2020/02/28", "2020/02/29"]
var body: some View
List
ForEach(dates.indices) index in Text("\(self.dates[index])")
.onAppear
self.compute()
func compute()
dates.indices.forEach index in
print(dates[index])
【讨论】:
以上是关于SwiftUI 中对成员“索引”的错误引用不明确的主要内容,如果未能解决你的问题,请参考以下文章
xcode 8 swift 3 中多点连接框架中对成员“会话(_:peer:didChange)”错误的模糊引用