直接上代码,就不多废话了
//// ViewController.m// QRCode//// Created by chenchen on 15/7/30.// Copyright (c) 2015年 BSY. All rights reserved.//#import <AVFoundation/AVFoundation.h>#import "ViewController.h"@interface ViewController ()<AVCaptureMetadataOutputObjectsDelegate> @end @implementation ViewController - (void)viewDidLoad {[super viewDidLoad];AVCaptureSession *session = [[AVCaptureSession alloc] init];AVCaptureDevice *device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];NSError *error = nil; AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:deviceerror:&error];if (input) {[session addInput:input];} else {NSLog(@"Error: %@", error);}AVCaptureMetadataOutput *output = [[AVCaptureMetadataOutput alloc] init];//设置扫码支持的编码格式(如下设置条形码和二维码兼容)[output setMetadataObjectTypes:@[AVMetadataObjectTypeQRCode,AVMetadataObjectTypeEAN13Code, AVMetadataObjectTypeEAN8Code, AVMetadataObjectTypeCode128Code]];[output setMetadataObjectsDelegate:self queue:dispatch_get_main_queue()];[session addOutput:output];[session startRunning];} #pragma mark - AVCaptureMetadataOutputObjectsDelegate- (void)captureOutput:(AVCaptureOutput *)captureOutputdidOutputMetadataObjects:(NSArray *)metadataObjectsfromConnection:(AVCaptureConnection *)connection{NSString *QRCode = nil;for (AVMetadataObject *metadata in metadataObjects) {if ([metadata.type isEqualToString:AVMetadataObjectTypeQRCode]) {// This will never happen; nobody has ever scanned a QR code... everQRCode = [(AVMetadataMachineReadableCodeObject *)metadata stringValue];break;}} NSLog(@"QR Code: %@", QRCode);}- (void)didReceiveMemoryWarning {[super didReceiveMemoryWarning];// Dispose of any resources that can be recreated.} @end