ios使用zxing遇到的问题

来源:互联网 发布:不知为不知是知也的知 编辑:程序博客网 时间:2024/05/20 18:19

使用CocoaPods安装ZXing 2.1


一:在开发项目上添加如下Framework(使用最新版cocoapod獲取zxing最新版不需要此步驟):

1: AVFoundation

2: AudioToolbox

3: CoreVideo

4: CoreMedia

5: libiConv

6: AddressBook

7: AddressBookUI

8:ImageIO



二:添加引用

#import <ZXing/ZXingWidgetController.h>

#import<ZXing/QRCodeReader.h>


三:在调用的类(例如  AViewController  )中实现  ZXingDelegate

#pragma ZXingDelegate- (void)zxingController:(ZXingWidgetController*)controller didScanResult:(NSString *)result{    UIAlertView *alert =[[UIAlertView alloc] initWithTitle:@"提示" message:result delegate:self cancelButtonTitle:@"关闭" otherButtonTitles:nil];    [alert show];}- (void)zxingControllerDidCancel:(ZXingWidgetController*)controller{    }


三:调用扫瞄(测试使用的是arc项目)

/** *@brief测试函数 * *@param sender */- (IBAction)btn_test_pressed:(id)sender {        //二维码测试    ZXingWidgetController *widController = [[ZXingWidgetController alloc] initWithDelegate:self showCancel:YES OneDMode:NO];    NSMutableSet *readers = [[NSMutableSet alloc ] init];    QRCodeReader* qrcodeReader = [[QRCodeReader alloc] init];    [readers addObject:qrcodeReader];    widController.readers = readers;    [self presentModalViewController:widController animated:YES];}


四:遇到的问题


问题1: 无法添加  AVFoundation等Framework


问题2: Lexical or Preprocessor Issue  'CoreVideo/CoreVideo.h' file not found


原因:因下载了1月份左右的XCode,这个时期的Xcode版本有点问题,安装不完全


解决:下载最新的XCode进行覆盖安装(今天下载了3月15号发布的版本解决了该问题)


问题3:  IOS 'iostream' file not found


解决:

           1)将开发项目的调用类(例如上面提到的 AViewController)的.m文件改成.mm文件

           2) 將AppDelegate改為.mm文件


问题4:  Apple Mach-O Linker Error


            Undefined symbols for architecture armv7s


解决:

            1)  项目属性-》Build Settings -》查找  Build Active Architecture Only ,将该项改成 NO 


            2)  C++ Standard Library  设置成为一致。将使用静态库的项目以及静态库项目的C++ Standard Library编译设置设置成为一样


的。这里我是将Pod项目的C++ Standard Library设置成为libc++(LLVM C++ standard library with C++ 11 support)


問題5:  import了QRCodeReader.h,但無法創建對象,提示找不到該類

解決:

      1)將使用QRCodeReader.h的m文件改為mm文件

      2)Build Active Architecture Only改為NO

      3) 將C++ Language Dialect and C++ Standard Library 改為一樣,參照問題4




原创粉丝点击