从网上下载的是zxing-2.2版本。然后按照http://www.cocoachina.com/applenews/devnews/2013/0104/5462.html的例子操作,这个是对的,只是有些细节地方还没有提到。在这里补充下
1.只保留cpp/core/src/zxing 和cpp/core/src/bigint和iphone/ZXingWidget 共三个目录。网上的cpp/core/src/bigint目录没有加上。我编译是发现不能少此目录,估计是zxing2.2版本的缘故。所有的文件放在工程文件同一级目录(建议你放这里。)我在实战中曾经发在下一级目录失败了(原因没有细查)。
2.然后加入下framework。
a. AVFoundation
b. AudioToolbox
c. CoreVideo
d. CoreMedia
e. libiconv
f. AddressBook
g. AddressBookUI
3.完成之后再加入ZXingWidget和libZXingWidget.a 同时拖动工程到demo工程内。如下图
然后添加.a文件
最后在 header search paths 加入 ./zxing/iphone/ZXingWidget/Classes ./zxing/cpp/core/src
测试二维码识别。
我是使用第一种方式的。我是直接在MainViewController.h里面加入 #import "ZXingWidgetController.h" #import "QRCodeReader.h"的。
问题一:
结果提示 “'iostream' file not found”错误。我开始以为是路径错了,修改路径后还是不对,按网上的把MainViewController.m 修改成.mm.还是不对。最后我把#import "ZXingWidgetController.h",#import "QRCodeReader.h"放在.mm文件,就没有问题。靠,一个混编的问题。忘了这一点。在混编中所有的c++文件都放在了.mm文件中了。
问题二:
还遇到如下的错误
解决方法:
问题三:
敲完测试代码。一编译,一个 Cannot initialize a parameter of type 'id<ZXingDelegate>' with an lvalue of type 'MainViewController *'的错误,一看应该少了委托。蛮有信心的在mainViewController.h 上加入<ZXingDelegate>, 还是错误。最后保持.h 文件不变。在.mm文件中加入<ZXingDelegate>如下图
世界一下子就安静下来。
问题四:
这个问题有两个方面的设置
a.如下图设置
2.如下图设置