-1
我正在寫一個API,它從網絡中加載時間間隔(startDate,endDate)的數據並返回一個圖像。功能回調/最佳做法
如果有任何我的函數(loadData)返回而沒有執行成功或失敗回調的發生?
在我的情況下,loadData只是返回,如果我已經加載數據的時間間隔。
我認爲這不是一個好方法。 另外我在這種情況下要求自己泄漏。
編輯:這裏是我的代碼:
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)
}
你有什麼建議嗎?
謝謝
不要談論你的代碼。 _顯示你的代碼。 – matt
這是我的代碼。 – thierryb