Skip to content

Instantly share code, notes, and snippets.

@YGeorge
Last active September 18, 2015 10:43
Show Gist options
  • Save YGeorge/6547c8ccb20e67cfbd44 to your computer and use it in GitHub Desktop.
Save YGeorge/6547c8ccb20e67cfbd44 to your computer and use it in GitHub Desktop.
Call bunch of requests (blocks)
+ (void)deleteDocumentsForFiles:(NSArray *)files forAccount:(NSString *)accountID success:(void (^)())success failure:(void (^)(NSError *error))failure {
__block NSInteger successDeleting = 0;
__block NSInteger failureDeleting = 0;
dispatch_group_t deleteDocumentGroup = dispatch_group_create();
for (YGFile *file in files) {
dispatch_group_enter(deleteDocumentGroup);
[YGFileService deleteDocument:file.documentID forAccount:accountID success:^{
DDLogVerbose(@"Delete document %@ success", file.documentID);
successDeleting++;
DDLogVerbose(@"successDeleting %d", successDeleting);
dispatch_group_leave(deleteDocumentGroup);
} failure:^(NSError *error) {
DDLogVerbose(@"Delete file document error - %@", error);
failureDeleting++;
DDLogVerbose(@"failureDeleting %d", failureDeleting);
dispatch_group_leave(deleteDocumentGroup);
}];
}
dispatch_group_notify(deleteDocumentGroup, dispatch_get_main_queue(), ^{
DDLogVerbose(@"Doc deleting: %d success, %d failure", successDeleting, failureDeleting);
if (failureDeleting > 0) {
NSError *tempError = [NSError errorWithType:LCErrorTypeTempServerError];
failure(tempError);
}
else {
success();
}
});
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment