Асинхронное изображение. Нельзя использовать оператор switch при закрытии фазы?

Когда я использую оператор switch в фазе в asyncImage, это дает мне эту ошибку.

Завершающее замыкание передается параметру типа CGFloat, который не принимает замыкание

Я понимаю, что документы используют операторы if let для извлечения изображения и получения ошибки, как здесь.

Мой код:

       AsyncImage(url: URL(string:stringURL)) { phase in
                switch phase {
                    case .empty:
                        ProgressView()
                    case .success(let image):
                        image
                          .scaledToFit()
                    case .failure():
                        EmptyView()
                    }
                  }

Согласно документам Apple:

      AsyncImage(url: URL(string: "https://example.com/icon.png")) { phase in
    if let image = phase.image {
      image // Displays the loaded image.
     } else if phase.error != nil {
    Color.red // Indicates an error.
      } else {
    Color.blue // Acts as a placeholder.
   }

Мой вопрос в том, почему я не могу использовать оператор switch здесь. И что конкретно означает эта ошибка?

Спасибо.

0 ответов

Другие вопросы по тегам