清除 VNDocumentCameraScan Swift 中的扫描图像缓存

Posted

技术标签:

【中文标题】清除 VNDocumentCameraScan Swift 中的扫描图像缓存【英文标题】:Clear the scanned images cache in VNDocumentCameraScan Swift 【发布时间】:2021-01-06 21:44:36 【问题描述】:

我使用视觉套件进行文档扫描。我可以扫描并保存文档,但是在关闭后返回此屏幕后,旧的扫描图像会显示在屏幕的左下角。解雇后如何清除扫描数组?

代码:

let vc = VNDocumentCameraViewController()

override func viewDidLoad() 
     super.viewDidLoad() 
     vc.delegate = self 


//Save button action in document VC

    func documentCameraViewController(_ controller: VNDocumentCameraViewController, didFinishWith scan: VNDocumentCameraScan) 
            print("Found \(scan.pageCount)")
            var imgArray: Array<UIImage> = []
            for i in 0 ..< scan.pageCount 
                let image = scan.imageOfPage(at: i)
                imgArray.append(image)
            
            dismiss(animated: true) 
                self.getFileName(img: imgArray)
            
        

Marked the scanned images icon at the bottom left

【问题讨论】:

您的 VNDocumentCameraViewController 在完成扫描后是否被销毁?您可能会重复使用它的实例吗? 你能说我应该在哪里销毁 VNDocumentCameraViewController 吗? func documentCameraViewControllerDidCancel(_ controller: VNDocumentCameraViewController) // You are responsible for dismissing the controller. controller.dismiss(animated: true) 我推荐dev.to/nemecek_f/… 扫描文档。 @andrey.krukovskiy 显示创建 VNDocumentCameraViewController 实例的代码 @andrey.krukovskiy let vc = VNDocumentCameraViewController().override func viewDidLoad() super.viewDidLoad() vc.delegate = self 【参考方案1】:

似乎,您在视图控制器对象的vc 常量中保留了指向 VNDocumentCameraViewController 实例的链接。当你第二次显示它时,相同的实例会被重用。

尝试像这样创建和呈现它:

func showDocumentCamera() 
   let vc = VNDocumentCameraViewController()
   vc.delegate = self
   present(vc, animated: true)

【讨论】:

以上是关于清除 VNDocumentCameraScan Swift 中的扫描图像缓存的主要内容,如果未能解决你的问题,请参考以下文章

输入框自动清除首尾空格

使用 IEFs-s-rEQ 宏的 MVS JES2 清除作业

清除用户提交的URL';s

如何清除ostringstream [重复]

快捷清除Documents and Settings下面用户的临时文件的方法~~~

华为交换机如何批量清除接口配置信息