七牛iOS按順序依次上傳多張圖片,一個block返回所有上傳的url
阿新 • • 發佈:2019-02-10
+ (void)uploadImages:(NSArray *)imageArray progress:(void (^)(CGFloat))progress success:(void (^)(NSArray *))success failure:(void (^)())failure { NSMutableArray *array = [[NSMutableArray alloc] init]; __block float totalProgress = 0.0f; __block float partProgress = 1.0f / [imageArray count]; __block NSUInteger currentIndex = 0; TDQiNiuUploadHelper *uploadHelper = [TDQiNiuUploadHelper sharedInstance]; __weak typeof(uploadHelper) weakHelper = uploadHelper; uploadHelper.singleFailureBlock = ^() { failure(); return; }; uploadHelper.singleSuccessBlock = ^(NSString *url) { [array addObject:url]; totalProgress += partProgress; progress(totalProgress); currentIndex++; if ([array count] == [imageArray count]) { success([array copy]); return; } else { // 上傳單張圖片 [TDSystemService uploadImage:imageArray[currentIndex] progress:nil success:weakHelper.singleSuccessBlock failure:weakHelper.singleFailureBlock]; } }; // 上傳單張圖片 [TDSystemService uploadImage:imageArray[0] progress:nil success:weakHelper.singleSuccessBlock failure:weakHelper.singleFailureBlock]; }
@interface TDQiNiuUploadHelper : NSObject
@property (copy, nonatomic) void (^singleSuccessBlock)(NSString *);
@property (copy, nonatomic) void (^singleFailureBlock)();
+ (instancetype)sharedInstance;
@end