Obter URL de um recurso recém-criado, estilo iOS 9

ALAssetsLibrary está obsoleto hoje em dia, mas praticamente todos os exemplos de SO ainda estão fazendo uso dele. Para o meu objetivo, preciso saber o URL do vídeo que foi adicionado à Biblioteca de Fotos para que eu possa compartilhar um vídeo no aplicativo Instagram (é a única maneira pela qual o Instagram aceita vídeos). O URL provavelmente deve começar com "assets-library: // ..."

Isso é simples comALAssetsLibrary:

ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library writeVideoAtPathToSavedPhotosAlbum:videoFilePath completionBlock:^(NSURL *assetURL, NSError *error) {  // ...

Acima, o URL é passado como argumento para o bloco de conclusão. Mas e quanto à maneira compatível com o iOS 9 comPHPhotoLibrary classe eperformChanges método?

var videoAssetPlaceholder:PHObjectPlaceholder!  // property

// ...

let videoURL = NSBundle.mainBundle().URLForResource("Video_.mp4", withExtension: nil)!

let photoLibrary = PHPhotoLibrary.sharedPhotoLibrary()
photoLibrary.performChanges({
    let request = PHAssetChangeRequest.creationRequestForAssetFromVideoAtFileURL(videoURL)
    self.videoAssetPlaceholder = request?.placeholderForCreatedAsset
},
completionHandler: { success, error in
    if success
    {
        // The URL of the video asset?
    }
})

questionAnswers(2)

yourAnswerToTheQuestion