私は、ネットワークから時間間隔(startDate、endDate)のデータを読み込んでイメージを返すAPIを作成しています。関数コールバック/ベストプラクティス
機能(loadData)が成功または失敗のコールバックを実行せずに返されることがありますか?
私の場合、この時間間隔のデータを既にロードしている場合、loadDataは単に返します。
良い方法ではないと思います。 また、私はこの場合に漏れを尋ねています。
EDIT:ここでは私のコードです:
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)
}
あなたが何かアドバイスはありますか?
おかげにより、発信者が知る必要のある情報である「操作は、すでに発売されている」に戻って
あなたのコードについて話しないでください。 _Show_あなたのコード。 – matt
ここに私のコードです。 – thierryb