You can't keep an reference to the picked image, so you need to, as you suggest your self, save a local copy of the image. You could use the UIImagePicker
to let the user pick the image and then save it locally:
-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
UIImage* image = (UIImage*) [info objectForKey:UIImagePickerControllerOriginalImage];
NSData *imageData = UIImagePNGRepresentation(image);
//save the imageData to document dir. You could also save it to the cache...
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documents = [paths objectAtIndex:0];
NSString *finalPath = [documents stringByAppendingPathComponent:@"myImageName.png"];
[imageData writeToFile:finalPath atomically:YES];
}