当我直接打开相机对QRCode的视图时,它会崩溃。但是当我在QRCode开始时没有直接打开相机的视图时,它工作正常。我已经尝试使用空的应用程序相同的代码,它的工作完美。它只是发生了这种情况。所有IBOutlets和IBActions都在工作,这是我的代码:
SerialController.h:
#import <UIKit/UIKit.h>
#import "ZBarSDK.h"
@interface SerialController : UIViewController <ZBarReaderDelegate>
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *spinner;
@property (weak, nonatomic) IBOutlet UILabel *description;
@property (weak, nonatomic) IBOutlet UIImageView *key;
@property (weak, nonatomic) IBOutlet UILabel *resultText;
@property (weak, nonatomic) IBOutlet UIActivityIndicatorView *qrSearchButton;
@property (weak, nonatomic) IBOutlet UIView *contentHolder;
@property (weak, nonatomic) IBOutlet UIImageView *turkcellLogo;
@property (weak, nonatomic) IBOutlet UIImageView *backgroundImage;
@end
SerialController.m
- (IBAction)handleQrSearchButtonTap:(id)sender {
ZBarReaderViewController *codeReader = [ZBarReaderViewController new];
codeReader.readerDelegate=self;
codeReader.supportedOrientationsMask = ZBarOrientationMaskAll;
ZBarImageScanner *scanner = codeReader.scanner;
[scanner setSymbology: ZBAR_I25 config: ZBAR_CFG_ENABLE to: 0];
[self presentViewController:codeReader animated:YES completion:nil];
}
#pragma mark - ZBar's Delegate method
- (void) imagePickerController: (UIImagePickerController*) reader didFinishPickingMediaWithInfo: (NSDictionary*) info
{
// get the decode results
id<NSFastEnumeration> results = [info objectForKey: ZBarReaderControllerResults];
ZBarSymbol *symbol = nil;
for(symbol in results)
// just grab the first barcode
break;
// showing the result on textview
self.resultText.text = symbol.data;
// dismiss the controller
[reader dismissViewControllerAnimated:YES completion:nil];
}
答案 0 :(得分:4)
您不想使用名为description
的媒体资源。我花了几个小时试图修复完全相同的问题。 description
是NSObject中的标准方法,您将其隐藏起来。将其重命名为其他内容。