Как остановить вызов, который отправляется в очередь операций в Objective-CIOS

Программируем под IOS
Ответить
Anonymous
 Как остановить вызов, который отправляется в очередь операций в Objective-C

Сообщение Anonymous »

Я работаю над приложением для iOS и использую AFNetworking для взаимодействия с API сервера.
Моя проблема в том, что я хочу отправить вызов и не хочу ограничивать пользователя до тех пор, пока не будет получен ответ от сервера, поэтому проблема в том, что крушение. Когда пользователь возвращается к этому конкретному экрану, скажем, у меня есть экран списка, на котором я получаю данные, что занимает 6-7 секунд, и тем временем пользователь возвращается к предыдущему экрану, и когда данные поступают из API и перезванивают, это удаление на экран списка, но пользователь вернитесь на этот экран, затем приложение выйдет из строя.
Ниже приведен код для получения вызова данных.

Код: Выделить всё

+ (void) getRequestForDocumentListing:(NSDictionary *)headerParams urlQuery: (NSString*)action parameters:(NSDictionary*)params
onComplete:(void (^)(id json, id code))successBlock
onError:(void (^)(id error, id code))errorBlock
{
NSString *authorizationValue = [self setAuthorizationValue:action];
NSString *selectedLanguage = [ApplicationBaseViewController getDataFromDefaults:@"GLOBALLOCALE"];
NSString *language = selectedLanguage;

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];

//set headers values
[manager.requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
[manager.requestSerializer setValue:language forHTTPHeaderField:@"Accept-Language"];
[manager.requestSerializer setValue:authorizationValue forHTTPHeaderField:@"authorization"];
[manager.requestSerializer setValue:@"x-folder" forHTTPHeaderField:@"inbox"];
[manager GET:action parameters:nil success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"document listing success");

NSInteger statusCode = [operation.response statusCode];
NSNumber *statusObject = [NSNumber numberWithInteger:statusCode];

successBlock(responseObject, statusObject);
}
failure:^(AFHTTPRequestOperation *operation, NSError *error)
{
NSInteger statusCode = [operation.response statusCode];
NSNumber *statusObject = [NSNumber numberWithInteger:statusCode];

id responseObject = operation.responseData;
id json = nil;
id errorMessage = nil;

if (responseObject) {

json = [NSJSONSerialization JSONObjectWithData:responseObject options:kNilOptions error:&error];
errorMessage = [(NSDictionary*)json objectForKey:@"Message"];
}else{
json = [error.userInfo objectForKey:NSLocalizedDescriptionKey];
errorMessage = json;
}

errorBlock(errorMessage, statusObject);
}];
}
Мне нужно остановить вызов в ViewdidDisappear Просмотреть делегат

Код: Выделить всё

- (AFHTTPRequestOperation *)GET:(NSString *)URLString
parameters:(id)parameters
success:(void (^)(AFHTTPRequestOperation *operation, id responseObject))success
failure:(void (^)(AFHTTPRequestOperation *operation, NSError *error))failure
{
AFHTTPRequestOperation *operation = [self HTTPRequestOperationWithHTTPMethod:@"GET" URLString:URLString parameters:parameters success:success failure:failure];
[self.operationQueue addOperation:operation];

return operation;
}
Как решить эту конкретную проблему?

Подробнее здесь: https://stackoverflow.com/questions/356 ... bjective-c
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»