Tot*_*mus 3 c++ qr-code objective-c zxing
所以我按照这里提到的步骤:http://zxing.googlecode.com/svn/trunk/iphone/README
我确保一切正常,但我的QRCodeReader在myVC.mm文件中无法识别.
情况就是这样:项目按照链接中的描述放入我自己的项目中.我已经#import "ZXingWidgetController.h"
在头文件中导入了它,它正在被识别.我已经#import "QRCodeReader.h"
在实现文件(.mm)中导入了然后我将它们分配到某个按钮的targetmethod中,如下所示:
ZXingWidgetController *widController = [[ZXingWidgetController alloc] initWithDelegate:self showCancel:YES OneDMode:NO];
widController.view.backgroundColor = [UIColor colorWithPatternImage:[UIImage imageNamed:@"qr_code_initialising_bg.png"]];
QRCodeReader* qrcodeReader = [[QRCodeReader alloc] init];
NSSet *readers = [[NSSet alloc ] initWithObjects:qrcodeReader,nil];
[qrcodeReader release];
widController.readers = readers;
[readers release];
[self presentModalViewController:widController animated:YES];
Run Code Online (Sandbox Code Playgroud)
现在它告诉我这是问题所在:
QRCodeReader* qrcodeReader = [[QRCodeReader alloc] init];
NSSet *readers = [[NSSet alloc ] initWithObjects:qrcodeReader,nil];
[qrcodeReader release];
Run Code Online (Sandbox Code Playgroud)
它说: Use of undeclared identifier 'QRCodeReader'
直接的C++代码(不是Objective C++)使用C++命名空间.
你需要说zxing::qrcode::QRCodeReader
或使用using
像这样的语句
using namespace zxing;
using namespace zxing::qrcode;
Run Code Online (Sandbox Code Playgroud)
更新:
上面的代码确实引入了C++类,但实际上我忘记了一个同名的widget类.它是一个Objective C类,它包装了C++类,是你想要的.而不是上面的代码,只是#import "QRCodeReader.h"
...你说你做了.我希望同名的两个文件发生冲突.在包含cpp文件时是否设置了"递归"选项?自述文件说"不需要"但应该说"绝对不能".这可能导致包含cpp文件而不是widget版本.