zoukankan      html  css  js  c++  java
  • iOS PDF文件连接转化为img图片保存到相册

    {
    
    //self.passURL 是后台返回的可以加载显示到webView中的PDF链接 if ([self.passURL isEqualToString:@""] || self.passURL == nil || [self.passURL isEqual:nil] || !self.passURL) { [self InvalidAlertView]; return; } NSURL *url = [[NSURL alloc] initWithString:self.passURL]; CFURLRef ref = (__bridge CFURLRef)url; pdf = CGPDFDocumentCreateWithURL(ref); CFRelease(ref); CGImageRef imageRef = PDFPageToCGImage(1,pdf); UIImage *amg = [UIImage imageWithCGImage:imageRef]; CGImageRelease(imageRef); //保存图片到相册 UIImageWriteToSavedPhotosAlbum(amg, self, @selector(image:didFinishSavingWithError:contextInfo:), nil); }

    - (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo{
        
        if (error == nil) {
            
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"图片已保存到相册" delegate:self cancelButtonTitle:nil otherButtonTitles:@"好的", nil];
            [alert show];
        }else{
            
            UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"提示" message:@"保存失败" delegate:self cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
            [alert show];
        }
        
    }
    

    问题:在dealloc中 写CGPDFDocumentRelease(pdf)这个方法,如果保存完照片后,快速点击返回按钮会崩溃,如果等2秒后点击返回不会崩,所以在项目中先屏蔽掉了。

    如果有哪位解决了不崩溃,请留个言,谢过了

    - (void)dealloc {

       // CGPDFDocumentRelease(pdf);

        if ([self.mainWebView isLoading]){

            [self.mainWebView stopLoading];

        }

    }

  • 相关阅读:
    webpack 项目接入Vite的通用方案介绍(上)
    AQS的原理及源码分析
    宝宝喂养
    Java日期时间操作基础——包含JDK1.8时间操作新特性
    ThreadLocal的正确使用与原理
    网络编程基础
    如何优雅正确地通过interrupt方法中断线程
    JavaWeb入门到实战学习笔记
    File与IO基础
    枚举基础
  • 原文地址:https://www.cnblogs.com/ios988/p/7852344.html
Copyright © 2011-2022 走看看