13.4. Storing Photos in the Photo Library
Problem
You want to be able to store a photo in the user’s photo library.
Solution
Use the UIImageWriteToSavedPhotosAlbum
procedure:
-
(
void
)
imageWasSavedSuccessfully:
(
UIImage
*
)
paramImage
didFinishSavingWithError:
(
NSError
*
)
paramError
contextInfo:
(
void
*
)
paramContextInfo
{
if
(
paramError
==
nil
){
NSLog
(
@"Image was saved successfully."
);
}
else
{
NSLog
(
@"An error happened while saving the image."
);
NSLog
(
@"Error = %@"
,
paramError
);
}
}
-
(
void
)
imagePickerController:
(
UIImagePickerController
*
)
picker
didFinishPickingMediaWithInfo:
(
NSDictionary
*
)
info
{
NSLog
(
@"Picker returned successfully."
);
NSLog
(
@"%@"
,
info
);
NSString
*
mediaType
=
[
info
objectForKey:
UIImagePickerControllerMediaType
];
if
([
mediaType
isEqualToString:
(
__bridge
NSString
*
)
kUTTypeImage
]){
UIImage
*
theImage
=
nil
;
if
([
picker
allowsEditing
]){
theImage
=
[
info
objectForKey:
UIImagePickerControllerEditedImage
];
}
else
{
theImage
=
[
info
objectForKey:
UIImagePickerControllerOriginalImage
];
}
SEL
selectorToCall
=
@selector
(
imageWasSavedSuccessfully:didFinishSavingWithError:contextInfo:
);
UIImageWriteToSavedPhotosAlbum
(
theImage
,
self
,
selectorToCall
,
NULL
);
}
[
picker
dismissModalViewControllerAnimated:
YES
];
}
-
(
void
)
imagePickerControllerDidCancel:
(
UIImagePickerController
*
)
picker
{
NSLog
(
@"Picker was cancelled"
);
[
picker
dismissModalViewControllerAnimated:
YES
];
}
-
(
void
)
viewDidLoad
{
[
super
viewDidLoad
];
if
([
self
isCameraAvailable
]
&&
[
self
doesCameraSupportTakingPhotos
]){
UIImagePickerController ...
Get iOS 6 Programming Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.