我正在尝试将此barcode source code by Stefanhafeneger包含在我的项目中。我用一个简单的相机示例和条形码引擎开始,一切都适用于第一个条形码解码。当我第二次尝试时,我会收到EXC_BAD_ACCESS。它只能在应用程序崩溃后工作一次。
Here is a screen recording of how the appilcation crash.
我在我的appilcation中使用谷歌的DataMatrix标签进行测试。
我正在冲浪寻找解决方案几天,我曾尝试过NSZombieEnabled,并使用Instrument进行调试,但我仍然没有运气。下图是xcode的错误。
*** -[Not A Type retain]: message sent to deallocated instance 0x7b21ed0
您的信息是启用ARC的项目。有人请帮忙,我还是几个月的初学者。
这是我的项目Barcode-Datamatrix Project
的xCode文件更新:我还尝试使用链接器标志-fno-objC-arc为与该库相关的每个文件禁用ARC,但结果仍然相同。除了我尝试imageView.image = [UIImage imageWithCGImage:image.CGImage];
或副本imageView.image = [image copy];
之外,应用程序仍然在同一个地方崩溃。
非常感谢 健
答案 0 :(得分:1)
[Not A Type retain]
表示您正在将一个不是UIImage的对象传递给UIImageView的图像属性,然后该方法会尝试识别它的类型以在imagevVew.image = image
行发送保留。 NSLog的类型为NSLog("%@", NSStringFromClass([image class]));
编辑:我 不 建议您将这样一个旧项目转换为ARC(我引用:“它与ios 2.1链接”)。使用链接器标志-fno-objC-arc并为与该项目相关的每个文件禁用ARC。然后,检查你的imageView是不是很时髦,尝试将你的图像设置为nil,或者完全删除该行并运行。
答案 1 :(得分:1)
BarCode Engine可能不会启用ARC。
要禁用一些不支持ARC支持的文件,我们可以向编译器显示通过此命令禁用ARC的文件
-fno-objc-arc
将此命令放在项目构建阶段,其中所有已编译的源存在(即项目名称中的所有类都将显示)
ZBarSDK
非常简单易用,并且更强大的API用于此条形码,qr代码解码。