0
我有以下代碼,其中i,以請求激活與一些參數閉合差從轉換代碼時迅速2
/*
Make an API request for activation
*/
var parameters: [String : AnyObject] =
[
"code" : code as AnyObject,
"dob" : httpClient.dateOfBirthFormatter.string(from: dateOfBirth) as AnyObject,
"csr" : CSR as AnyObject,
"deviceType" : systemVersion as AnyObject,
"deviceModel" : deviceInfo as AnyObject
]
if let deviceId = deviceId {
parameters["deviceId"] = deviceId as AnyObject?
}
httpClient.devicePOST("api/activation", parameters: parameters as AnyObject?, handleAuthorization: false, start: nil, retry: nil,
success:
{
(task: URLSessionDataTask, result: AnyObject?) -> Void in
guard let response = result as? [String : AnyObject] else {
failure(NSError(domain: "", code: 0, userInfo: ["reason" : "Invalid response"]))//change this later
return
}
guard let certificatePEM = response["certificate"] as? String else {
failure(NSError(domain: "", code: 0, userInfo: ["reason" : "Invalid response: certificate"]))//change this later
return
}
/*
Data is valid, activation is successful. Retrieve optional device identifier and call success handler
*/
var deviceId: UUID?
if let identifier = response["id"] as? String {
deviceId = UUID(uuidString: identifier)
}
success(certificatePEM, customerId, patientId, deviceId)
},
failure: {
(task: URLSessionDataTask?, error: NSError) -> Void in
if let data = error.userInfo[AFNetworkingOperationFailingURLResponseDataErrorKey] as? Data {
if let string = String(data: data, encoding: String.Encoding.ascii) {
print(string)
}
}
failure(error)
}
)
}
的裝置POST函數被定義爲下面
typealias StartSessionTaskHandler = (URLSessionDataTask) -> Void
typealias RetrySessionTaskHandler = (URLSessionDataTask) -> Void
typealias SuccessResponseHandler = (URLSessionDataTask, AnyObject?) -> Void
typealias FailureResponseHandler = (URLSessionDataTask?, NSError) -> Void
func devicePOST(_ URLString: String, parameters: AnyObject?, handleAuthorization: Bool = true, start: StartSessionTaskHandler?, retry: RetrySessionTaskHandler?, success: SuccessResponseHandler?, failure: FailureResponseHandler?) {
guard let deviceService = deviceService else {
failure?(nil, NSError(domain: "", code: 0, userInfo: ["reason": "device service is unavailable"]))
return
}
POST(deviceService, URLString: URLString, parameters: parameters, handleAuthorization: handleAuthorization, start: start, retry: retry, success: success, failure: failure)
}
在POST函數,當我嘗試檢查閉包塊我看到這樣的事情
所以塊沒有正確傳遞我猜。當我使用swift時,這工作得很好。有人能幫我解決這個問題。在此先感謝