gpt4 book ai didi

ios - MLKit文本检测异常-[Not A Type _cfTypeID] : message sent to deallocated instance 0x106623e20

转载 作者:可可西里 更新时间:2023-11-01 01:56:16 24 4
gpt4 key购买 nike

我正在尝试创建一个应用程序,使用 MLKit 的文本检测功能来检测设备相机拍摄的照片中的文本。下面是我的 photoOutput 方法中的代码,以及它调用的方法的代码:

func photoOutput(_ output: AVCapturePhotoOutput,
didFinishProcessingPhoto photo: AVCapturePhoto,
error: Error?) {
print("worked")
PHPhotoLibrary.shared().performChanges( {
let creationRequest = PHAssetCreationRequest.forAsset()
creationRequest.addResource(with: PHAssetResourceType.photo, data: photo.fileDataRepresentation()!, options: nil)
}, completionHandler: nil)

let cgImage = photo.cgImageRepresentation()!.takeRetainedValue()
print(cgImage)
let orientation = photo.metadata[kCGImagePropertyOrientation as String] as! NSNumber
let uiOrientation = UIImage.Orientation(rawValue: orientation.intValue)!
let image = UIImage(cgImage: cgImage, scale: 1, orientation: uiOrientation)

self.runTextRecognition(with: image)
}

func runTextRecognition(with image: UIImage) {
let visionImage = VisionImage(image: image)
textRecognizer.process(visionImage) { features, error in
self.processResult(from: features, error: error)
}
}

func processResult(from text: VisionText?, error: Error?) {
guard error == nil, let text = text else {
print("oops")
return
}

print(text.text)

}

每当我运行应用程序并拍照时,一切都运行良好,直到行 textRecognizer.process(visionImage)。控制台消息是 -[Not A Type _cfTypeID]: message sent to deallocated instance 0x106623e20.

如有任何帮助或建议,我们将不胜感激!如果我应该包含更多信息,请告诉我。

最佳答案

没关系,我解决了这个问题!我应该一直使用 .takeUnretainedValue() 而不是 .takeRetainedValue(),因为 ARC 在我使用它之前为我释放了 CGImage 对象。

关于ios - MLKit文本检测异常-[Not A Type _cfTypeID] : message sent to deallocated instance 0x106623e20,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53111232/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com