gpt4 book ai didi

ios - swift 4 : Getting Thread 1: EXC_BAD_ACCESS error with AVFoundation

转载 作者:行者123 更新时间:2023-11-30 11:25:38 25 4
gpt4 key购买 nike

学习 Swift 4 和 AVFoundation 并在点击“拍照”按钮时遇到错误,抛出 'Thread 1: EXC_BAD_ACCESS (code=1, address=0x596bbeb8)' 而不是将我导航到预览 View Controller 以显示刚刚捕获的图像。

(很高兴提供更多代码,只是试图提取我认为可能与使问题尽可能简短相关的内容:D)

在我的 ViewController.swift 中:

当点击“拍照”按钮时,它会调用 takepicture() 函数。

func takePicture() {
let settings = AVCapturePhotoSettings()
cameraCaptureOutput?.capturePhoto(with: settings, delegate: self)
}

然后对于委托(delegate):

extension ViewController : AVCapturePhotoCaptureDelegate {

func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {

if let unwrappedError = error {
print(unwrappedError.localizedDescription)
} else {
let imageCaptured = photo.cgImageRepresentation()!.takeRetainedValue()
let finalImage = UIImage(cgImage: imageCaptured)
displayCapturedPhoto(capturedPhoto: finalImage)
}
}
}

displayCapturedPhoto() 函数:

func displayCapturedPhoto(capturedPhoto : UIImage) {
let imagePreviewViewController = storyboard?.instantiateViewController(withIdentifier: "imagePreviewViewController") as! imagePreviewViewController
imagePreviewViewController.capturedImage = capturedPhoto
navigationController?.pushViewController(imagePreviewViewController, animated: true)
}

在我的 imagePreviewViewController.swift 中:

var capturedImage : UIImage?

@IBOutlet weak var capturedImageView: UIImageView!

override func viewDidLoad() {
super.viewDidLoad()

capturedImageView.image = capturedImage

// Do any additional setup after loading the view.
}

capturedImageView.image = captureImage 上发生错误 Thread 1: EXC_BAD_ACCESS (code=1, address=0x596bbeb8)

任何人都可以指出我在这里可能出错的正确方向吗?

最佳答案

AVCapturePhoto.cgImageRepresentation() 返回非托管 CGImage 引用。如果您takeRetainedValue(),您会消耗不平衡的保留,这可能会导致它提前释放和随后的EXC_BAD_ACCESS。尝试使用 takeUnretainedValue() 代替。

关于ios - swift 4 : Getting Thread 1: EXC_BAD_ACCESS error with AVFoundation,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50774391/

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