by Anonymous » 26 Aug 2025, 11:32
Ich bekomme ein seltsames Speicherleck wie unten. src="
https://i.sstatic.net/6HWgfk8B.png" />
The code about MessageImageLoader looks like unten.
Code: Select all
class SomeView: UIView {
let listView = ListView()
func update(with data: SomeData) {
listView.update(with: data)
}
}
class ListView: UIView {
private var imageLoaders: [MessageImageLoader] = []
func update(with data: SomeData) {
imageLoaders.removeAll()
data.ids.forEach {
let imageLoader = MessageImageLoader(imageInfo: ["...": $0.sth])
imageLoaders.append(imageLoader)
imageLoader.load { [weak self] _ in
self?.imageLoaders.remove(imageLoader)
}
}
}
}
class MessageImageLoader {
// ...
func load(completion: @escaping (UIImage?) -> Void) {
Task { [weak self] in
guard let self else { return }
// a bunch of await call inside
// and the completion is called finally.
}
}
}
Eine Tabellenansichtszelle hat etwas und wiederverwendet sich selbst. MessingImageloader lastet kann oft aufgerufen werden.
) und Aufgaben sind durchgesickert?>
Ich bekomme ein seltsames Speicherleck wie unten. src="https://i.sstatic.net/6HWgfk8B.png" />
[img]https://i.sstatic.net/w3JP8HY8.png[/img]
The code about MessageImageLoader looks like unten.[code]class SomeView: UIView {
let listView = ListView()
func update(with data: SomeData) {
listView.update(with: data)
}
}
class ListView: UIView {
private var imageLoaders: [MessageImageLoader] = []
func update(with data: SomeData) {
imageLoaders.removeAll()
data.ids.forEach {
let imageLoader = MessageImageLoader(imageInfo: ["...": $0.sth])
imageLoaders.append(imageLoader)
imageLoader.load { [weak self] _ in
self?.imageLoaders.remove(imageLoader)
}
}
}
}
class MessageImageLoader {
// ...
func load(completion: @escaping (UIImage?) -> Void) {
Task { [weak self] in
guard let self else { return }
// a bunch of await call inside
// and the completion is called finally.
}
}
}
[/code]
Eine Tabellenansichtszelle hat etwas und wiederverwendet sich selbst. MessingImageloader lastet kann oft aufgerufen werden.[code]imageInfo[/code]) und Aufgaben sind durchgesickert?>