IOS儲存多張圖片 多執行緒處理
阿新 • • 發佈:2018-11-22
儲存多張圖片的時候,既要控制不丟圖片,又要控制圖片可以多執行緒。提高儲存速度,防止程式崩潰,防止使用者等待時間過久
這裡我們可以使用Photos框架的PHPhotoLibrary類,這個可以幫助你多執行緒儲存圖片
-(void)saveBtn { [SSGOTools againRequestPhotoWithblock:^(BOOL isAgree) { if (isAgree) { //確認開啟許可權 self.listOfImages = [NSMutableArray new]; int photoNum ; photoNum = (int)_photoArray.count; if (_photoArray.count > 9) { photoNum = 9; } for (int i = 0; i < photoNum; i++) { NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:_photoArray[i]]]; UIImage *myImage = [UIImage imageWithData:data]; //[self.listOfImages addObject:myImage]; [self loadImageFinished:myImage]; } } }]; }
特別注意,自己封裝的提示框,會無法顯示,因為在非同步執行緒中,需要返回主執行緒來。進行UI的更新。試試效果吧~- (void)loadImageFinished:(UIImage *)image { [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{ //寫入圖片到相簿 [PHAssetChangeRequest creationRequestForAssetFromImage:image]; } completionHandler:^(BOOL success, NSError * _Nullable error) { NSLog(@"success = %d, error = %@", success, error); if(success){ dispatch_async(dispatch_get_main_queue(), ^{ [SSGOTools showInfoPopHint:@"儲存成功"]; }); } }]; }