Swiftでバーコードを読み取る方法についてです。
取得はAppleが用意しているライブラリAVFoundation
を使って行います。
まずはプロジェクトにAVFoundationを追加します。
ViewControllerのコードは以下のようにします。
アプリを起動するとカメラが立ち上がり、バーコードを読み込んだタイミングでdelegateメソッドであるcaptureOutput:didOutputMetadataObjects:fromConnection
が呼ばれます。
class ViewController: UIViewController, AVCaptureMetadataOutputObjectsDelegate { let session = AVCaptureSession() override func viewDidLoad() { super.viewDidLoad() let device = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo) let input = try? AVCaptureDeviceInput(device: device) session.addInput(input) let output = AVCaptureMetadataOutput() output.setMetadataObjectsDelegate(self, queue: dispatch_get_main_queue()) session.addOutput(output) output.metadataObjectTypes = output.availableMetadataObjectTypes let layer = AVCaptureVideoPreviewLayer(session: session) layer.frame = view.bounds layer.videoGravity = AVLayerVideoGravityResizeAspectFill view.layer.addSublayer(layer) session.startRunning() } func captureOutput(captureOutput: AVCaptureOutput!, didOutputMetadataObjects metadataObjects: [AnyObject]!, fromConnection connection: AVCaptureConnection!) { print(metadataObjects.flatMap { $0.stringValue }) } }