gpt4 book ai didi

objective-c - 在 UIView 中实现 ZBar 二维码阅读器

转载 作者:搜寻专家 更新时间:2023-10-30 20:20:07 24 4
gpt4 key购买 nike

我真的需要帮助。我是 iOS/Objective-C 的新手,如果问题解决很明显或者我的代码很糟糕,我很抱歉。对我好点!! :-)

我正在努力将用于读取二维码的 ZBarSDK 集成到我正在构建的 iPad 应用程序中。如果我使用 ZBarReaderController(其中有很多关于实现的教程和指南),它工作正常。但是我想让相机出现在 UIView 中,而不是全屏相机。

现在我已经尽可能地让相机 View (readerView) 按预期出现在 UIView (ZBarReaderView) 中,但是当它扫描代码时出现错误。在扫描代码之前不会出现错误,这让我相信这与委托(delegate)相关或其他原因。

这是我的代码的重要部分:(ZBarSDK.h 在 PCH 文件中导入)

登录 View Controller .h

#import <UIKit/UIKit.h>
#import <AVFoundation/AVFoundation.h>

@class AVCaptureSession, AVCaptureDevice;

@interface SignInViewController : UIViewController
< ZBarReaderDelegate >
{
ZBarReaderView *readerView;
UITextView *resultText;
}

@property (nonatomic, retain) UIImagePickerController *imgPicker;
@property (strong, nonatomic) IBOutlet UITextView *resultText;
@property (strong, nonatomic) IBOutlet ZBarReaderView *readerView;

-(IBAction)StartScan:(id) sender;

登录 View Controller .m

#import "SignInViewController.h"

@interface SignInViewController ()

@end

@implementation SignInViewController


@synthesize resultText, readerView;

-(IBAction)StartScan:(id) sender
{
readerView = [ZBarReaderView new];
readerView.readerDelegate = self;

readerView.tracksSymbols = NO;

readerView.frame = CGRectMake(30,70,230,230);
readerView.torchMode = 0;
readerView.device = [self frontFacingCameraIfAvailable];

ZBarImageScanner *scanner = readerView.scanner;
[scanner setSymbology: ZBAR_I25
config: ZBAR_CFG_ENABLE
to: 0];


[self relocateReaderPopover:[self interfaceOrientation]];

[readerView start];

[self.view addSubview: readerView];
resultText.hidden=NO;

}


- (void) readerControllerDidFailToRead: (ZBarReaderController*) reader
withRetry: (BOOL) retry{
NSLog(@"the image picker failing to read");

}

- (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info
{


NSLog(@"the image picker is calling successfully %@",info);
id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
NSString *hiddenData;
for(symbol in results)
hiddenData=[NSString stringWithString:symbol.data];


NSLog(@"the symbols is the following %@",symbol.data);

resultText.text=symbol.data;


NSLog(@"BARCODE= %@",symbol.data);

NSLog(@"SYMBOL : %@",hiddenData);
resultText.text=hiddenData;

}

扫描代码时出现的错误:

2012-12-16 14:28:32.797 QRTestApp[7970:907] -[SignInViewController     readerView:didReadSymbols:fromImage:]: unrecognized selector sent to instance 0x1e88b1c0
2012-12-16 14:28:32.799 QRTestApp[7970:907] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SignInViewController readerView:didReadSymbols:fromImage:]: unrecognized selector sent to instance 0x1e88b1c0'

我还不太担心结果会怎样,只是想克服这个错误。由于严重缺乏关于 ZBarReaderView 的教程或文档(无论如何对于初学者),我花了很长时间才让相机出现在 UIView 中。谢谢大家。

最佳答案

我解决了这个问题。委托(delegate)名称不正确。它应该是“ZbarReaderViewDelegate”。我错过了“ View ”部分。呸!!

@interface SignInViewController : UIViewController
< ZBarReaderViewDelegate >
{
ZBarReaderView *readerView;
UITextView *resultText;
}

关于objective-c - 在 UIView 中实现 ZBar 二维码阅读器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13898753/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com