一, 二维码扫描,有众所周知的zxing,和zbar.zbar for iphone 已经一年没有更新了,都还没有支持ARC
zxing 各个平台都支持,也一直在更新.但是系统只提供了ZXingWidgetController里面解析二维码的代码比较多,且没有由相册读取图片进行解析的代码. 项目中我的viewController已经继承了一个CommonViewController,所以这ZXingWidgetController改起来比较麻烦.
二, 然后在github上翻了翻,找到了ZXingObjC 评价也挺高的,有600多个star. 添加,使用都挺简单的.
但在显示完扫描界面,跳到其他界面是,不到一秒,程序就会崩溃.崩溃信息如下:
dismiss之前,先要将capture layer remove 掉:
zxing 各个平台都支持,也一直在更新.但是系统只提供了ZXingWidgetController里面解析二维码的代码比较多,且没有由相册读取图片进行解析的代码. 项目中我的viewController已经继承了一个CommonViewController,所以这ZXingWidgetController改起来比较麻烦.
二, 然后在github上翻了翻,找到了ZXingObjC 评价也挺高的,有600多个star. 添加,使用都挺简单的.
但在显示完扫描界面,跳到其他界面是,不到一秒,程序就会崩溃.崩溃信息如下:
Thread 7 name: Dispatch queue: com.zxing.captureQueue Thread 7 Crashed: 0 libsystem_kernel.dylib 0x3a53a350 __pthread_kill + 8 1 libsystem_c.dylib 0x3a4b111e pthread_kill + 54 2 libsystem_c.dylib 0x3a4ed96e abort + 90 3 libsystem_c.dylib 0x3a486398 free + 356 4 libobjc.A.dylib 0x3a0393a8 object_dispose + 16 5 iHome 0x0013849e -[ZXCapture dealloc] (ZXCapture.m:490) 6 AVFoundation 0x3133fed6 __74-[AVCaptureVideoDataOutput _AVCaptureVideoDataOutput_VideoDataBecameReady]_block_invoke_0 + 294 7 libdispatch.dylib 0x3a45411c _dispatch_call_block_and_release + 8 8 libdispatch.dylib 0x3a457eca _dispatch_queue_drain$VARIANT$mp + 138 9 libdispatch.dylib 0x3a457dbc _dispatch_queue_invoke$VARIANT$mp + 36 10 libdispatch.dylib 0x3a45891a _dispatch_root_queue_drain + 182 11 libdispatch.dylib 0x3a458abc _dispatch_worker_thread2 + 80 12 libsystem_c.dylib 0x3a488a0e _pthread_wqthread + 358 13 libsystem_c.dylib 0x3a4888a0 start_wqthread + 4百度上没有ZXingObjC的任何消息,只得google,然后发现还是有很多人遇到这种问题的.终于,在 https://github.com/TheLevelUp/ZXingObjC/issues/26找到了答案:
dismiss之前,先要将capture layer remove 掉:
[self.capture.layer removeFromSuperlayer]; [self.capture stop]; [self dismissViewControllerAnimated:YES completion:nil];
完美解决!
转自:http://wangjianlewo.blog.163.com/blog/static/176568051201310181038161/