This is my code in obj-c:
__block NSString *requestReference = [self operation:method url:url parameters:parameters headers:headers success:^(NSURLSessionDataTask *task, id responseObject) { NSError *error = [NSError errorWithSessionTask:task responseObject:responseObject]; if (error) { NSLog(@"error - %@", error); [delegate requestWithReference:requestReference didFinishWithBusinessError:error]; } else { id responseModel; if (modelClass && responseObject) { if ([responseObject isKindOfClass:[NSDictionary class]]) {
and this is the code after converting to Swift:
var requestReference = self.operation(method, url: url, parameters: parameters, headers: headers, success: {(_ task: URLSessionDataTask, _ responseObject: Any) -> Void in var error = Error(sessionTask: task, responseObject: responseObject) if error { print("error - \(error)") delegate.request(with: requestReference, didFinishWithBusinessError: error) } else { var responseModel: Any! if modelClass && responseObject { if (responseObject is [AnyHashable: Any]) { // if response is a dictionary, create model out of it do { responseModel = try modelClass.object(fromDictionary: responseObject) } catch { } } else if (responseObject is [Any]) { } } } }, failure: {(_ task: URLSessionDataTask, _ error: Error) -> Void in delegate.request(with: requestReference, didFailWithError: error) })
I converted and came up with this code. everything works in this code, but I get an error:
"Variable used within its initial value"
source share