IOS拍照---》保存到相册----》并且获取照片的ALasset传到相册
2015-12-30 09:12
543 查看
场景:本身想把IOS拍照和相册选照片功能集成到一起,就是把拍照的相片和选相册的相片放到一个collection中,然后上传,并且拍照的照片默认在相册选照片时是选中状态的,所以需要获取拍照的照片ALasset然后传到相册中去,
问题但是获取了相册的Alasset后,在往相册方法传时一直是空,可能是assetURL方法异步的问题,但后来晚上搜罗了下才发现之前写的方法有问题:
-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *type = [info
objectForKey:UIImagePickerControllerMediaType];
if ([type isEqualToString:@"public.image"])
{
//先把图片转成NSData
UIImage* image = [info
objectForKey:@"UIImagePickerControllerOriginalImage"];
ALAssetsLibrary *library = [[ALAssetsLibrary
alloc]
init];
[library
writeImageToSavedPhotosAlbum:[image CGImage]
orientation:(ALAssetOrientation)[image
imageOrientation] completionBlock:^(NSURL *assetURL,
NSError *error){
if (error) {
// TODO: error handling
} else {
[library
assetForURL:assetURL resultBlock:^(ALAsset *asset) {
[self.selectPhotos
addObject:asset];
[_imageCollection
reloadData];
} failureBlock:^(NSError *error) {
}];
}
}];
}
}
问题就出现在ALAssetsLibrary *library
= [[ALAssetsLibrary
alloc]
init]; 这个类的声明上,
这个东东要作为公共的类进行声明,然后问题解决,具体原因不详,还请大牛多多指点。
问题但是获取了相册的Alasset后,在往相册方法传时一直是空,可能是assetURL方法异步的问题,但后来晚上搜罗了下才发现之前写的方法有问题:
-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSString *type = [info
objectForKey:UIImagePickerControllerMediaType];
if ([type isEqualToString:@"public.image"])
{
//先把图片转成NSData
UIImage* image = [info
objectForKey:@"UIImagePickerControllerOriginalImage"];
ALAssetsLibrary *library = [[ALAssetsLibrary
alloc]
init];
[library
writeImageToSavedPhotosAlbum:[image CGImage]
orientation:(ALAssetOrientation)[image
imageOrientation] completionBlock:^(NSURL *assetURL,
NSError *error){
if (error) {
// TODO: error handling
} else {
[library
assetForURL:assetURL resultBlock:^(ALAsset *asset) {
[self.selectPhotos
addObject:asset];
[_imageCollection
reloadData];
} failureBlock:^(NSError *error) {
}];
}
}];
}
}
问题就出现在ALAssetsLibrary *library
= [[ALAssetsLibrary
alloc]
init]; 这个类的声明上,
这个东东要作为公共的类进行声明,然后问题解决,具体原因不详,还请大牛多多指点。
相关文章推荐
- IOS学习之蓝牙4.0
- iOS开发系列--通讯录、蓝牙、内购、GameCenter、iCloud、Passbook系统服务开发汇总,icloudpassbook
- IOS BLE4.0蓝牙和外设连接和收发数据的流程
- ios蓝牙---(最终我自己测试成功了读和写)
- 【iOS】判断硬件型号
- IOS学习笔记之类目和延展
- iOS多线程笔记
- iOS开发mac常用到的命令
- iOS --- OpenGLES之初步认识
- IOS 发布注意事项
- ios流继承关系
- ios查找分析友盟统计闪退日志,代码错误位置的方法闪退分析CrashAnalyze
- AVAudioPlayer音频播放器—IOS开发
- iOS常用的第三方框架
- 蜂窝教育iOS培训:让技术武装您 企业重用您
- IOS9.0后_视频
- IOS 终端命令
- IOS 终端命令2
- IOS 将项目上传到GitHub 上的方法步骤(任何项目)
- iOS - folder和group的区别,bundle文件夹(资源文件)得创建