- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
NSURL *assetURL;
if( [picker sourceType] == UIImagePickerControllerSourceTypeCamera )
{
assetURL = [info objectForKey:UIImagePickerControllerReferenceURL]; // always return nil !!
}
else if( [picker sourceType] == UIImagePickerControllerSourceTypePhotoLibrary)
{
assetURL = [info objectForKey:UIImagePickerControllerReferenceURL];
}
当我选择UIImagePickerControllerSourceTypeCamera时,如何获得assetURL。
UIImagePickerControllerSourceTypePhotoLibrary正常工作。
答案 0 :(得分:1)
使用UIImagePickerControllerSourceTypeCamera
拍摄图像时,图像不会自动保存到照片库中。你必须手动编写它。写完后,您可以获取网址。
示例代码:
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info {
if (picker.sourceType == UIImagePickerControllerSourceTypeCamera) {
UIImage* cameraImage = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
ALAssetsLibrary* assetsLibrary = [[ALAssetsLibrary alloc] init];
[assetsLibrary writeImageToSavedPhotosAlbum:cameraImage.CGImage
metadata:[info objectForKey:UIImagePickerControllerMediaMetadata]
completionBlock:^(NSURL *assetURL, NSError *error) {
if (!error) {
//use assetURL as you need.
}
}];
}
}
警告但写作是一项耗时的操作。