ich die UIImagePickerController in zwei Fällen bin mitWie die URL eines Bildes bekommen nur in PHPhotoLibrary hinzugefügt
- ein vorhandenes Bild in der Fotobibliothek wählen
- ein neues Bild aufzunehmen
im ersten Fall, wenn ich ein Bild bildet die Bibliothek wähle, kann ich die URL in der Delegatmethode leicht bekommen:
- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
// Get the URL
NSURL *url = [info valueForKey:UIImagePickerControllerReferenceURL];
...
}
Aber wenn ich ein neues Bild mache, ist das Bild noch nicht in der Fotobibliothek und hat noch keine URL. Also muss ich zuerst das Bild in der Bibliothek hinzufügen. Aber wie erhält man die URL des neuen Assets?
Hier ist mein Code, um das Bild in der Fotobibliothek hinzufügen
- (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 ?
...
}
];
}
Das funktioniert, aber fühlt sich sehr unheimlich an, ich weiß nicht, ob es tatsächlich passieren wird, aber dieser Ansatz könnte zu einer Wettlaufsituation führen. –
Welcher Rennzustand? Ich wäre mir nicht sicher, ob der LocalIdentifier noch verfügbar ist –
hallo können Sie bitte sagen, was wird die self.assetCollection hier, welche Klasse es ist, danke –