Я использую UIImagePickerController в двух случаях
- чтобы выбрать существующее изображение в Фотобиблиотеке
- чтобы сделать новое изображение
В первом случае, когда я выбираю форму изображения в библиотеке, я могу легко получить URL-адрес в методе делегирования:
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
// Get the URL
NSURL *url = [info valueForKey:UIImagePickerControllerReferenceURL];
...
}
Но когда я беру новое изображение, изображение еще не находится в библиотеке фотографий и еще не имеет URL. Поэтому мне сначала нужно добавить изображение в библиотеку. Но тогда, как получить URL-адрес нового актива?
Вот мой код, чтобы добавить изображение в Photo Library
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
// Get the image
UIImage *image = [info objectForKey:UIImagePickerControllerOriginalImage];
// Add the image in the library
[[PHPhotoLibrary sharedPhotoLibrary]
performChanges:^
{
// Request creating an asset from the image.
PHAssetChangeRequest *createAssetRequest = [PHAssetChangeRequest creationRequestForAssetFromImage:image];
// Get the URL of the new asset here ?
...
}
completionHandler:^(BOOL success, NSError *error)
{
if (!success) { ...; return; }
// Get the URL of the new asset here ?
...
}
];
}