Aufgaben stornierten Nachrichten im AusgabefensterIOS

Programmierung für iOS
Anonymous
 Aufgaben stornierten Nachrichten im Ausgabefenster

Post by Anonymous »

Ich habe eine benutzerdefinierte Ansicht namens Urlimage, die für das Abrufen und Zwischenspeichern von Bildern in Swiftui verantwortlich ist. Wenn die Urlimage dann gerendert wird, wird sie erstellt und zerstört, da sie sich in einer Liste befindet. Dieses Verhalten nimmt die Aufgabe ab und deshalb zeigt der Haken die ganze Zeit "abgebrochen". Wie kann ich dieses Problem in Urlimage beheben? < /P>

Code: Select all

struct URLImage: View {

let url: URL?
@State private var image: UIImage?
let imageLoader = ImageLoader()

var body: some View {
ZStack {
if let image {
Image(uiImage: image)
} else {
Image(systemName: "heart")
}
}.task {
do {
image = try await imageLoader.loadImage(url: url)
} catch {
// THIS IS FIRED AND IT PRINTS "cancelled" ON THE OUTPUT WINDOW
print(error.localizedDescription)
}
}
}
}
< /code>
Der Imageloader ist für das Abrufen und Abschnitt der Bilder verantwortlich. < /p>
struct ImageLoader {

let httpClient: HTTPClient
private static let cache = NSCache()

init(httpClient: HTTPClient = HTTPClient()) {
self.httpClient = httpClient
}

func loadImage(url: URL?) async throws -> UIImage? {

guard let url = url else {
throw NetworkError.badUrl
}

// check if cache has the image
if let cachedImage = Self.cache.object(forKey: url.absoluteString as NSString) {
return cachedImage
}

// if not in cache then fetch the image
let resource = Resource(url: url, modelType: Data.self)
let data = try await httpClient.load(resource)

guard let uiImage = UIImage(data: data) else {
throw NetworkError.badRequest
}

return uiImage
}

}
< /code>
und Ich verwenden Urlimage wie unten gezeigt: < /p>
List(customers) { customer in
HStack {
URLImage(url: customer.thumbnailImage)
Text(customer.name)
}
}

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post