Y at-il un moyen de garder notre service web de déléguer des méthodes dans une classe et de les utiliser quand cela est nécessaire? Normalement, je continuais à écrire les délégués dans toutes les classes telles que didReceiveResponse
et didReceiveData
etc.iOS Objective C Webservice
1
A
Répondre
0
Il existe un moyen de faire ce que vous voulez accomplir, mais assurez-vous de ne pas en faire trop. Trop d'utilisation de singletons est généralement reconnue comme une mauvaise pratique.
Créez un Singleton que vous pourriez utiliser dans votre application.
Dans votre Singleton: APISingleton
-(void)APIRequestWithParams:(NSMutableDictionary*)params
onCompletion:(JSONResponseBlock)completionBlock
onFailure:(OperationFailureBlock)failureBlock{
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
[manager.requestSerializer setCachePolicy:NSURLRequestReloadIgnoringLocalCacheData];
[manager GET:kGymEverAPIfullUrl
parameters:params
success:^(AFHTTPRequestOperation *operation, id responseObject) {
completionBlock(responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
failureBlock(operation);
}];}
Comment utiliser:
-(void)getImages{
NSMutableDictionary *params = [[NSMutableDictionary alloc]initWithObjectsAndKeys:[NSString stringWithFormat:@"%ld",1],@"page",@"5",@"count", nil];
[[APISingleton sharedInstance] APIRequestWithParams:params onCompletion:^(id json) {
postsArray = [json objectForKey:@"posts"];
[self downloadImages];
} onFailure:^(AFHTTPRequestOperation *operation) {
//Do whatever you want if it does not work.
}];}
utilisant: https://github.com/AFNetworking/AFNetworking