我有AFHTTPClient
的子類主要想法是我通過AFHTTPClient
子類的單例調用所有的API,並且所有請求都經過1個點用於錯誤處理和HUD顯示。 這是切入點每個API調用:多個AFHTTPClient請求
-(void) makeRequestWithPath:(NSString*) path andParams:(NSDictionary*) params
success:(void (^)(id JSON, AFHTTPRequestOperation *operation)) success
failure:(void (^)(NSError *error)) failure
而對於API調用類似的東西我已經得到了很多方法:
-(void) getListMainTreeWithSuccess:(void (^)(id JSON, AFHTTPRequestOperation *operation)) success
failure:(void (^)(NSError *error)) failure
{
[self makeRequestWithPath:@"objects/selectlist" andParams:nil success:^(id JSON, AFHTTPRequestOperation *operation) {
success(JSON,operation);
} failure:^(NSError *error) {
failure(error);
}];
}
這只是正常的我的需要。但我面對的問題,我需要通過我的AFHTTPClient
子類來使閉環串請求,並作出一些行動時,所有的人都完了,我發現方法
-(void)enqueueBatchOfHTTPRequestOperationsWithRequests:(NSArray *)urlRequests
progressBlock:(void (^)(NSUInteger numberOfFinishedOperations, NSUInteger totalNumberOfOperations))progressBlock
completionBlock:(void (^)(NSArray *operations))completionBlock
應該解決我的問題,但問題是,我通過AFHTTPClient
調用所有方法,它的方法是getPath:和postPath:以前的方式迫使我重寫所有內容,並使我的子類完全無用,因爲我需要添加NSArray
,這是不可能從我的子類構造或提取的,我的方法。以前我試圖用__block來同步信號量和別的東西,但是我沒有得到我需要的東西,請幫助我!
UPDATE: 這似乎是不可能的,即使使用enqueueBatchOfHTTPRequestOperations
方法(甚至重寫我的代碼),因爲這種方法需要的HTTP請求操作的陣列,但它不可能構造POST請求與他們。
你可以用'enqueueBatchOfHTTPRequestOperations' –