我正在尝试更新控制器中的MBProgressHUD。
从只显示静态消息,我想把进度条/进度百分比显示上传过程给用户。
YBWeakSelf;
[[YBStorageManage shareManage]getCOSInfo:^(int code) {
dispatch_async(dispatch_get_main_queue(), ^{
if (code == 0) {
[weakSelf startUpload];
}
});
}];
[self networkState];
-(void)startUpload{
YBWeakSelf;
dispatch_group_t group = dispatch_group_create();
dispatch_queue_t queue = dispatch_get_global_queue(0, 0);
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
NSString *filePath =_videoPath;
//ä¼ å¾ç
dispatch_group_async(group, queue, ^{
NSData *imageData = UIImagePNGRepresentation(_videoCoverImage);
if (!imageData) {
[MBProgressHUD hideHUD];
[MBProgressHUD showError:YZMsg(@"è¯·éæ°éæ©")];
return;
}
UIImage *herfImg = [UIImage imageWithData:imageData];
NSString *imageName = [PublicObj getNameBaseCurrentTime:@".png"];
[[YBStorageManage shareManage]yb_storageImg:herfImg andName:imageName progress:^(CGFloat percent) {
}complete:^(int code, NSString *key) {
//å¾çæå
[weakSelf uploadimagesuccess:key];
dispatch_semaphore_signal(semaphore);
}];
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
});
dispatch_group_async(group, queue, ^{
//ä¼ è§é¢
NSString *videoName = [PublicObj getNameBaseCurrentTime:@".mp4"];
[[YBStorageManage shareManage]yb_storageVideoOrVoice:filePath andName:videoName progress:^(CGFloat percent) {
} complete:^(int code, NSString *key) {
//请æ±appä¸å¡æå¡å¨ç»æ é¢
[weakSelf uploadvideosuccess:key andTitle:mytitle];
dispatch_semaphore_signal(semaphore);
}];
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
});
//ä¸ä¼ æ°´å°è§é¢
NSString *mkfilePath =_videoWmkPath;
dispatch_group_async(group, queue, ^{
NSData *imageData = UIImagePNGRepresentation(_videoWmkCoverImage);
if (!imageData) {
[MBProgressHUD hideHUD];
[MBProgressHUD showError:YZMsg(@"è¯·éæ°éæ©")];
return;
}
UIImage *herfImg = [UIImage imageWithData:imageData];
NSString *imageName = [PublicObj getNameBaseCurrentTime:@"_mk .png"];
[[YBStorageManage shareManage]yb_storageImg:herfImg andName:imageName progress:^(CGFloat percent) {
}complete:^(int code, NSString *key) {
//å¾çæå
[weakSelf uploadWmkimagesuccess:key];
dispatch_semaphore_signal(semaphore);
}];
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
});
dispatch_group_async(group, queue, ^{
//ä¼ è§é¢
NSString *videoName = [PublicObj getNameBaseCurrentTime:@"_mk.mp4"];
[[YBStorageManage shareManage]yb_storageVideoOrVoice:mkfilePath andName:videoName progress:^(CGFloat percent) {
} complete:^(int code, NSString *key) {
//请æ±appä¸å¡æå¡å¨ç»æ é¢
[weakSelf uploadvideoWmksuccess:key andTitle:mytitle];
dispatch_semaphore_signal(semaphore);
}];
dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER);
});
dispatch_group_notify(group, queue, ^{
dispatch_async(dispatch_get_main_queue(), ^{
[self requstAPPServceTitle:mytitle andVideo:_videokey andImage:_imagekey];
});
NSLog(@"ä»»å¡å®ææ§è¡");
}); }
如何更新MBProgressHUD以在那里设置进度条?
同时队列线程中有4个异步线程。
我想拿
progress:^(CGFloat percent)
并将其放入MBProgressHUD
由于这是一个更新视图进度,我不得不把它放在主线程中,对吧?
我试过好几次了,但总是坚持到最后。
我试着在每个
进度:^(CGFloat百分比)
但它总是发出紫色警告说
Thread running at QOS_CLASS_USER_INITIATED waiting on a thread without a QoS class specified. Investigate ways to avoid priority inversions