Ошибка Неоднозначная ссылка на «индексы» члена в SwiftUI - PullRequest
0 голосов
/ 28 февраля 2020

Я пытаюсь перебрать все даты, которые я получил от моего 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. Я получаю сообщение об ошибке «Неоднозначная ссылка на« индексы »членов», и я не уверен, что это значит.

1 Ответ

0 голосов
/ 28 февраля 2020

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])
        }

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...