SwiftでQRコードリーダーの開発を行っています
このサイトを参考にしながら作成しているのですが、
AVCaptureMetadataOutput()のインスタンスをセッションに追加しようとすると、RUNはできるのですが、起動後に以下のようにEXC_BAD_ACCESSが出でしまいます
addOutput関数の引数にはAVCaptureOutputのオプショナル型のプロパティを指定するようなので
特に間違ったところはないように見えるのですが、考えられる原因がわかりません。
どなたかアドバイス頂けないでしょうか。

import UIKit
import AVFoundation
class ViewController: UIViewController, AVCaptureMetadataOutputObjectsDelegate {

    var myVideoInput:AVCaptureDeviceInput!
    var myMetadataOutput:AVCaptureMetadataOutput!

    override func viewDidLoad() {
        super.viewDidLoad()

        let mySession: AVCaptureSession! = AVCaptureSession()

        var myDevice: AVCaptureDevice!

        myDevice = AVCaptureDevice.defaultDevice(withDeviceType: .builtInWideAngleCamera, mediaType: AVMediaTypeVideo, position: .back)

        do {
            myVideoInput = try AVCaptureDeviceInput(device:myDevice)
        } catch  {
        }

        if mySession.canAddInput(myVideoInput) {
            mySession.addInput(myVideoInput)
        }

        myMetadataOutput = AVCaptureMetadataOutput()
        if mySession.canAddOutput(myMetadataOutput) {
            mySession.addOutput(myMetadataOutput)
            myMetadataOutput.setMetadataObjectsDelegate(self, queue: DispatchQueue.main)
            myMetadataOutput.metadataObjectTypes = [AVMetadataObjectTypeQRCode]
        }
    }
}

RUNを押した後