清除 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 清除作业