实现QRCodeReader (ZXing)的问题

Problems with implementing QRCodeReader (ZXing)

本文关键字:问题 ZXing QRCodeReader 实现      更新时间:2023-10-16

所以我遵循了这里提到的步骤:http://zxing.googlecode.com/svn/trunk/iphone/README

我确保一切都好,但我的QRCodeReader在我的vc中没有被识别。mm文件。

情况是这样的:该项目被放入我自己的项目中,如链接中所述。我已经在头文件中导入了#import "ZXingWidgetController.h",它正在被识别。我已经在实现文件(.mm)中导入了#import "QRCodeReader.h"。然后我将它们都分配到某个按钮的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'

  • 为什么它没有看到我导入的qrcoderreader在似乎。mm文件吗?
  • 我忘记了什么,而不是在我使用的描述?
  • 最重要的是,我如何修复这个来识别QRCodeReader?

直接的c++代码(不是Objective c++)使用c++命名空间。

您需要说zxing::qrcode::QRCodeReader或使用using语句,如

  using namespace zxing;
  using namespace zxing::qrcode;

:

上面的代码确实引入了c++类,但实际上有一个同名的小部件类,我忘记了。它是一个包装c++类的Objective C类,是你想要的。而不是上面的代码,只是#import "QRCodeReader.h"…你说过的。我想这两个同名的文件会发生碰撞。在包含cpp文件时是否设置了"递归"选项?README说"不需要",但应该说"绝对不能"。这可能导致包含cpp文件而不是小部件版本。

我在最后遇到了同样的问题,解决方案很简单。

我把。mm文件与"Location" -> "Relative to Project"。

希望对您有所帮助