-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