swift 调用中传递了额外的尾随闭包

dly7yett  于 2024-01-05  发布在  Swift
关注(0)|答案(1)|浏览(146)

有人可以请帮助这个代码.我收到一个错误“额外的尾随闭包通过调用”我已经创建了一个名单的名字,然而,我想显示照片上的个人名单上的名字,而不是.然而,当我尝试这我收到一个错误.有人可以pease帮助我解决这个问题,或者有人可以帮助我如何创建一个名单与照片的每个人与他们的名字?我将能够创建一个名单的名称和图像上传用户的照片库?

  1. import Foundation
  2. import SwiftUI
  3. import Combine
  4. import PhotosUI
  5. struct Task : Identifiable {
  6. var id = String()
  7. var toDoItem = String()
  8. }
  9. class TaskStore : ObservableObject {
  10. @Published var tasks = [Task]()
  11. }
  12. @MainActor
  13. class ImageModel: ObservableObject {
  14. @Published var image: Image?
  15. @Published var imageSelection: PhotosPickerItem? {
  16. didSet {
  17. if let imageSelection {
  18. Task { // --> ERROR in THIS LINE "extra trailing closure passed in call"
  19. try await loadTransferable(from: imageSelection)
  20. }
  21. }
  22. }
  23. }
  24. func loadTransferable(from imageSelection: PhotosPickerItem?) async throws {
  25. do {
  26. if let data = try await imageSelection?.loadTransferable(type: Data.self) {
  27. if let uiImage = UIImage(data: data) {
  28. print("success")
  29. self.image = Image(uiImage: uiImage)
  30. }
  31. }
  32. } catch {
  33. fatalError("Image issue")
  34. }
  35. }
  36. }

字符串

bd1hkmkf

bd1hkmkf1#

问题是你的Task结构与Swift的Task冲突。你试图使用Task被解释为使用你的Task结构。
你有两个解决方案:
1.将您的Task结构重新命名为其他名称,以避免命名冲突。
1.在Swift的Task前面加上它的模块名:

  1. SwiftUI.Task {
  2. try await loadTransferable(from: imageSelection)
  3. }

字符串

相关问题