所以我按照这里提到的步骤进行了操作: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];
现在它告诉我这是问题所在:
QRCodeReader* qrcodeReader = [[QRCodeReader alloc] init];
NSSet *readers = [[NSSet alloc ] initWithObjects:qrcodeReader,nil];
[qrcodeReader release];
它说:Use of undeclared identifier 'QRCodeReader'
答案 0 :(得分:6)
直接的C ++代码(不是Objective C ++)使用C ++命名空间。
您需要说zxing::qrcode::QRCodeReader
或使用{/ 1}}语句,例如
using
<强>更新强>:
上面的代码确实引入了C ++类,但实际上我忘记了一个同名的widget类。它是一个Objective C类,它包装了C ++类,是你想要的。而不是上面的代码,只是 using namespace zxing;
using namespace zxing::qrcode;
...你说过你做过的。我希望同名的两个文件发生冲突。在包含cpp文件时是否设置了“递归”选项?自述文件说“不需要”但应该说“绝对不能”。这可能导致包含cpp文件,而不是小部件版本。
答案 1 :(得分:1)
我最后遇到了同样的问题,解决方案很容易。
我把.mm文件放在“位置” - &gt; “相对于项目”。
希望这个帮助