首先在github上下载ZBar SDK
地址https://github.com/bmorton/ZBarSDK
然后将如下的相关类库添加进去
AVFoundation.framwork, CoreMedia.framework, CoreVideo.framework, libiconv.dylib 和libzbar.a
接下来首先在.h文件中引用
#import"ZBarSDK.h"
同时添加代理
ZBarReaderDelegate
然后在.m文件中添加如下代码
```objc
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent*)event
{
ZBarReaderViewController*reader = [[ZBarReaderViewControlleralloc]init];
reader.readerDelegate=self;
ZBarImageScanner*scanner = reader.scanner;
[scannersetSymbology:ZBAR_I25config:ZBAR_CFG_ENABLEto:0];
[selfpresentViewController:readeranimated:YEScompletion:nil];
}
- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
NSLog(@"info=%@",info);
//得到条形码结果
id results =[infoobjectForKey:ZBarReaderControllerResults];
ZBarSymbol*symbol =nil;
for(symbolinresults)
break;
UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:@"信息提示!"message:symbol.datadelegate:selfcancelButtonTitle:@"取消"otherButtonTitles:@"确定",nil];
[alertshow];
}
```
点击屏幕就可以调用啦!
注 --- iOS 二维码扫描 zBarsdk 不支持64位 missing required architecture x86_64 in file
ZBar在64位下会报错,大概意思就是不支持64位,实际上ios7以上是支持原生api扫描二维码的,所以我觉得这就是为什么zbarsdk没有继续更新的原因。
百度一下,说修改架构什么的还是有的,但貌似没说到点子上,还是老外的解决方法牛逼。
第一:问题的提出,给了很多解决方法:
http://stackoverflow.com/questions/12506671/zbar-sdk-is-not-working-in-ios6/12753812#12753812
stackoverflow的方法还是不错的。
这个也不错:http://www.federicocappelli.net/2012/10/05/zbar-library-for-iphone-5-armv7s/
第二:楼主发现的最好方法:
http://blog.diogot.com/blog/2013/09/18/static-libs-with-support-to-ios-5-and-arm64/
对应的作者工程:https://github.com/diogot/StaticLibDemo
这里有个好心人弄好了以供下载:
http://download.csdn.net/detail/zyq527758142/8428825
我直接下载最后这个修改版的SDK,替换了就可以了,不用设置其他麻烦的事儿,集成方式一样,再把bit code关掉就行!