【iOS】SDWebImage異步下載多張圖片保存到相冊

self.videoSuffixs = @[@"mov",@"mp4",@"rmvb",@"rm",@"flv",@"avi",@"3gp",@"wmv",@"mpeg1",@"mpeg2",@"mpeg4(mp4)", @"asf",@"swf",@"vob",@"dat",@"m4v",@"f4v",@"mkv",@"mts",@"ts"];
- (void)addLongPress {
    UILongPressGestureRecognizer *longPress = [[UILongPressGestureRecognizer alloc] initWithActionBlock:^(id  _Nonnull sender) {
        
        @strongify(self);
        NSString *urlString = (NSString *)photo;
        NSString *suffix = [[urlString.lowercaseString componentsSeparatedByString:@"."] lastObject];
        if (suffix && [self.videoSuffixs containsObject:suffix]) {
            [MBProgressHUD showInfoMessage:@"暫不支持視頻保存"];
            return;
        }
        
        NSArray *actions;
        if (self.photos.count > 1) {
            actions = @[@"取消", @"保存該圖片至相冊", @"批量保存至相冊"];
        } else {
            actions = @[@"取消", @"保存該圖片至相冊"];
        }
        
        [self ActionSheetWithTitle:nil message:nil destructive:nil destructiveAction:^(NSInteger index) {
            DLog(@"destructiveAction = %ld", index);
        } andOthers:actions animated:YES action:^(NSInteger index) {
            DLog(@"action = %ld", index);
            DLog(@"photo = %@", photo);
            DLog(@"photos = %@", self.photos);
            if (index == 0) {
                // 取消
                
            } else if (index == 1) {
                // 保存該圖片至相冊
                self->_isSaveMultiPhotos = NO;
                SDImageCache *imageCache = [SDImageCache sharedImageCache];
                UIImage *image = [imageCache imageFromCacheForKey:photo];
                [self saveImgAsync:image];
            } else if (index == 2) {
                // 批量保存至相冊
                self->_isSaveMultiPhotos = YES;
                [self saveImgsAsync:self.photos];
            }
        }];
        
    }];
    [cell addGestureRecognizer:longPress];
}
- (void)saveImgsAsync:(NSArray *)photos {
    
    [MBProgressHUD showInfoMessage:@"正在保存"];
    if(photos.count>0) {
        
        dispatch_group_t group = dispatch_group_create();
        
        for (NSString *photo in photos) {
            dispatch_group_enter(group);
            
            NSURL *url = [NSURL URLWithString:photo];
            [[SDWebImageDownloader sharedDownloader] downloadImageWithURL:url options:0 progress:nil completed:^(UIImage * _Nullable image, NSData * _Nullable data, NSError * _Nullable error, BOOL finished) {
                
                [self saveImgAsync:image];
                
                dispatch_group_leave(group);
                
            }];
        }
        
        dispatch_group_notify(group, dispatch_get_main_queue(), ^{
            [MBProgressHUD showInfoMessage:@"圖片已保存到相冊"];
        });
    }
    
}

- (void)saveImgAsync:(UIImage *)img
{
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
        UIImageWriteToSavedPhotosAlbum(img, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
    });
}

- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo {
    if (_isSaveMultiPhotos == NO) {
        dispatch_async(dispatch_get_main_queue(), ^{
            if (error) {
                [MBProgressHUD showErrorMessage:@"圖片保存失敗"];
            } else {
                [MBProgressHUD showSuccessMessage:@"圖片已保存到相冊"];
            }
        });
    }
}
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末荠列,一起剝皮案震驚了整個濱河市她按,隨后出現(xiàn)的幾起案子窟感,更是在濱河造成了極大的恐慌缩赛,老刑警劉巖岁经,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異交惯,居然都是意外死亡墅诡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門障癌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來凌外,“玉大人,你說我怎么就攤上這事涛浙】导” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵轿亮,是天一觀的道長疮薇。 經(jīng)常有香客問我,道長我注,這世上最難降的妖魔是什么按咒? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮但骨,結(jié)果婚禮上胖齐,老公的妹妹穿的比我還像新娘。我一直安慰自己嗽冒,他們只是感情好呀伙,可當我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著添坊,像睡著了一般剿另。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上贬蛙,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天雨女,我揣著相機與錄音,去河邊找鬼阳准。 笑死氛堕,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的野蝇。 我是一名探鬼主播讼稚,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼绕沈!你這毒婦竟也來了锐想?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤乍狐,失蹤者是張志新(化名)和其女友劉穎赠摇,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡藕帜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年烫罩,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片洽故。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡贝攒,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出收津,到底是詐尸還是另有隱情饿这,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布撞秋,位于F島的核電站长捧,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏吻贿。R本人自食惡果不足惜串结,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舅列。 院中可真熱鬧肌割,春花似錦、人聲如沸帐要。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽榨惠。三九已至奋早,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間赠橙,已是汗流浹背耽装。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留期揪,地道東北人掉奄。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓,卻偏偏與公主長得像凤薛,于是被迫代替她去往敵國和親姓建。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,037評論 2 355

推薦閱讀更多精彩內(nèi)容