Ich schreibe eine API, die Daten für Zeitintervalle (startDate, endDate) aus dem Netzwerk lädt und ein Bild zurückgibt.Funktion Rückruf/Best Practices
Gibt es irgendeine Inzidenz, die meine Funktion (loadData) zurückgibt, ohne Erfolg oder Misserfolg Callback auszuführen?
In meinem Fall wird einfach loadData zurückgegeben, wenn ich bereits Daten für diese Zeitintervalle geladen habe.
Ich denke, dass es kein guter Weg ist. Auch ich frage mich in diesem Fall nach Leck.
EDIT: Hier ist mein Code:
func loadImageFromWebService(startDateISO8601: String, endDateISO8601: String, startCallback: (() -> Void)?, successCallback: ((UIImage?) -> Void)?, failureCallback: ((Error) -> Void)?) {
let operationKey = makeOperationKey(forTimeIntervals: startDateISO8601, endDateISO8601)
guard isOperationAlreadyLaunched(operationKey) == false else { return }
startCallback?()
let networkTask = WEB_SERVICE_MANAGER.getData(startDateISO8601: startDateISO8601, endDateISO8601: endDateISO8601, successCallback: { [ weak self ] data in
let image = self?.makeImageWithData(data)
successCallback?(image)
}, // Success Callback
failureCallback: { [ weak self ] error in
self?.setNetworkTask(nil, forOperationKey: operationKey)
failureCallback?(error)
} // Failure Callback
)
self.setNetworkTask(networkTask, forOperationKey: operationKey)
}
Sie einen Rat haben Sie?
Dank
Sprechen Sie nicht über Ihren Code. _Show_ Ihr Code. – matt
Hier ist mein Code. – thierryb