整理UIImagePickerController、儲存圖片到相簿問題,
//此方法在ios8.0系統上,之前用代碼建立的相簿,手動刪除它,再用這個庫去建立剛被刪除的相簿,這個時候方法回調是不會跑fail模組的,它走的是正常流程,但是帶回來的group卻是nil造成崩潰原因ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init];[assetsLibrary addAssetsGroupAlbumWithName:@"iOSDevTip1" resultBlock:^(ALAssetsGroup *group12) { [groups addObject:group12];} failureBlock:nil];
//為瞭解決iOS8.0以上系統下無法通過代碼建立被刪除過的同名相簿[[PHPhotoLibrary sharedPhotoLibrary] performChanges:^ { [PHAssetCollectionChangeRequest creationRequestForAssetCollectionWithTitle:@"琳小兮"]; } completionHandler:^(BOOL success, NSError *error) { if (!success) { NSLog(@"---error:%@",error.userInfo); } }];
補充
#pragma mark ----- 網路攝影機和相簿相關 -----// 判斷裝置是否有網路攝影機- (BOOL)isCameraAvailable { return [UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera];}// 判斷前面的網路攝影機是否可用- (BOOL)isFrontCameraAvailable { return [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceFront];}// 判斷後面的網路攝影機是否可用- (BOOL)isRearCameraAvailable { return [UIImagePickerController isCameraDeviceAvailable:UIImagePickerControllerCameraDeviceRear];}// 判斷是否支援某種多媒體類型:拍照片、拍視頻- (BOOL)cameraSupportsMedia:(NSString *)paramMediaType sourceType:(UIImagePickerControllerSourceType)paramSourceType { __block BOOL result = NO; if ([paramMediaType length] == 0){ NSLog(@"Media type is empty."); return NO; } NSArray *availableMediaTypes = [UIImagePickerController availableMediaTypesForSourceType:paramSourceType]; [availableMediaTypes enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL*stop) { NSString *mediaType = (NSString *)obj; if ([mediaType isEqualToString:paramMediaType]){ result = YES; *stop = YES; } }]; return result;}// 判斷網路攝影機是否支援錄影- (BOOL)doesCameraSupportShootingVideos { return [self cameraSupportsMedia:(NSString *)kUTTypeMovie sourceType:UIImagePickerControllerSourceTypeCamera];}// 判斷網路攝影機是否支援拍照- (BOOL)doesCameraSupportTakingPhotos { return [self cameraSupportsMedia:(NSString *)kUTTypeImage sourceType:UIImagePickerControllerSourceTypeCamera];}#pragma mark ----- 相簿檔案選取相關 -----// 判斷相簿是否可用- (BOOL) isPhotoLibraryAvailable{ return [UIImagePickerController isSourceTypeAvailable: UIImagePickerControllerSourceTypePhotoLibrary];}// 判斷是否可以在相簿中選擇視頻- (BOOL) canUserPickVideosFromPhotoLibrary { return [self cameraSupportsMedia:( NSString *)kUTTypeMovie sourceType:UIImagePickerControllerSourceTypePhotoLibrary];}// 判斷是否可以在相簿中選擇照片- (BOOL) canUserPickPhotosFromPhotoLibrary { return [self cameraSupportsMedia:( NSString *)kUTTypeImage sourceType:UIImagePickerControllerSourceTypePhotoLibrary];}