Video 如何将此代码转换为Swift以保存视频?

Video 如何将此代码转换为Swift以保存视频?,video,swift,avfoundation,ios8,Video,Swift,Avfoundation,Ios8,我有以下代码来保存视频: (void)saveRecordedFile:(NSURL *)recordedFile { [SVProgressHUD showWithStatus:@"Saving..." maskType:SVProgressHUDMaskTypeGradient]; dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,

我有以下代码来保存视频:

(void)saveRecordedFile:(NSURL *)recordedFile {

[SVProgressHUD showWithStatus:@"Saving..."
                     maskType:SVProgressHUDMaskTypeGradient];

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{

    ALAssetsLibrary *assetLibrary = [[ALAssetsLibrary alloc] init];
    [assetLibrary writeVideoAtPathToSavedPhotosAlbum:recordedFile
                                     completionBlock:
     ^(NSURL *assetURL, NSError *error) {

         dispatch_async(dispatch_get_main_queue(), ^{

             [SVProgressHUD dismiss];

             NSString *title;
             NSString *message;

             if (error != nil) {

                 title = @"Failed to save video";
                 message = [error localizedDescription];
             }
             else {
                 title = @"Saved!";
                 message = nil;
             }

             UIAlertView *alert = [[UIAlertView alloc] initWithTitle:title
                                                             message:message
                                                            delegate:nil
                                                   cancelButtonTitle:@"OK"
                                                   otherButtonTitles:nil];
             [alert show];
         });
     }];
 });
}
我想转换成swift,但我不知道如何更改这行:

    ALAssetsLibrary *assetLibrary = [[ALAssetsLibrary alloc] init];
    [assetLibrary writeVideoAtPathToSavedPhotosAlbum:recordedFile
                                     completionBlock:
     ^(NSURL *assetURL, NSError *error) 
如何将
completionBlock^(NSURL*assetURL,NSError*error)
转换为swift?

我用以下方法解决了它:

  typealias ALAssetsLibraryWriteVideoCompletionBlock = (NSURL!, NSError!) -> Void

    var complete : ALAssetsLibraryWriteVideoCompletionBlock = {reason in println(reason)}
    library.writeVideoAtPathToSavedPhotosAlbum( fileUrl, complete)

谢谢

你可以这样写:

assetLibrary.writeVideoAtPathToSavedPhotosAlbum(outputURL, completionBlock: {(url: NSURL!, error: NSError!)  in             
       println("URL %@",url);
       if error != nil{                 
       }
     })

看看我的答案。我想这会对你有帮助。
 let assetsLib = ALAssetsLibrary()

        assetsLib.writeVideoAtPathToSavedPhotosAlbum(postDetail.videoNsurl, completionBlock: { (assetURL: NSURL?, error: NSError?) -> Void in
            if (error != nil) {
                let alertView:UIAlertView = UIAlertView()
                            alertView.title = "Failed!"
                            alertView.message = error.localizedDescription
                            alertView.delegate = self
                            alertView.addButtonWithTitle("OK")
                            alertView.show()
            } else {
                if let validAssetURL = assetURL {
                    let alertView:UIAlertView = UIAlertView()
                            alertView.title = "Saved"
                            alertView.message = nil
                            alertView.delegate = self
                            alertView.addButtonWithTitle("OK")
                            alertView.show()
                }
            }
        })