我正在使用iOS應用程序,並且正在使用AFnetworking與服務器API進行交互。 我的問題是我想發送電話,並不想限制用戶直到從服務器獲取響應,所以問題是崩潰。當用戶移回特定屏幕時,可以說我有列表屏幕,我正在獲取數據,這需要6-7秒,同時用戶移回到上一個屏幕,並且數據來自API並將該刪除回調到列出屏幕,但用戶移動到該屏幕然後應用程序崩潰 下面是獲取數據調用的代碼。如何停止在目標c中運行隊列中發送的呼叫
+ (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;
}
所以需要建議如何解決這一具體問題。需要幫助。 謝謝
什麼是崩潰? – Paulw11
將所有操作添加到數組中,並在ViewdidDisappear中的循環徹底數組後停止。 –
@MOHAMMADISHAQ你認爲這是最好的辦法,也可能是其他操作需要而且重要。 – Aleem