参照网上各大神文章,自己总结了下如下,欢迎大家指正与交流!(主参照:http://blog.csdn.net/brokge/article/details/9045629)
1. 到 github下载开源库 (https://github.com/zxing/zxing)
2. 得到代码后只需要 cpp部分和iphone部分,如下:
3. 继续剪裁 cpp 和iphone文件夹,如下:
4.将修改好的zxing文件夹全部添加到我们的目标工程中,并且把ZXingWidget.xcodeproj文件拖到工程
5. 添加依赖Framework:
AVFoundation AudioToolbox CoreVideo CoreMedia libiconv AddressBook AddressBookUI
6.
7. 选择工程,targets,build settings,找到 header search path,添加值:
./zxing/iphone/ZXingWidget/Classes recursive
./zxing/cpp/core/src non-recursive
我的路径是:
到此环境搭建完成,下一步开始调用
8.引用:
#import <ZXingWidgetController.h> #import <QRCodeReader.h>
别忘了设置代理
然后:
注意:
1. 修改当前的 XXviewController.m文件为XXviewController.mm 解决:iosstream file not found
2. 在Zxing所在的工程中build setting下Other warning flags选项删除"-Werror"和"-Wno-unused-parameter"两个编译选项,即可消除此错误。 解决: private field 'cached_y_' is not used
推荐一个不错的在线生成二维码的网站:http://cli.im/
.m文件与.mm文件区别:
.m文件是纯Object-C 文件 ; .m只能调用纯Object-C的类,不能调用混合的
.mm是Object-C和C++混合文件 ; .mm可以调用Object-C的,也可以调用C++的
http://blog.csdn.net/ysy441088327/article/details/8515556 总结的也很好。