2

我正在尝试将Stefanhafeneger 的这个条形码源代码包含到我的项目中。我从一个简单的相机示例和条码引擎开始,对于第一次条码解码,一切正常。当我第二次尝试时,我收到 EXC_BAD_ACCESS。在应用程序崩溃之后,它只工作 1 次。

这是应用程序崩溃的屏幕记录。

我正在我的应用程序中使用谷歌的这个DataMatrix标签进行测试。

UfoDesign 数据矩阵

几天来我一直在寻找解决方案,我尝试过 NSZombieEnabled,并使用 Instrument 进行调试,但我仍然没有运气。下图是来自 xcode 的错误。

*** -[Not A Type retain]: message sent to deallocated instance 0x7b21ed0

调试1 调试2

供您参考,这是一个启用 ARC 的项目。有人请帮忙,我还是几个月大的初学者。

这是我的这个项目的 xCode 文件Barcode-Datamatrix Project

更新:我还尝试通过使用链接器标志 -fno-objC-arc 为与该库相关的每个文件禁用 ARC,但结果仍然相同。除了我尝试imageView.image = [UIImage imageWithCGImage:image.CGImage];或复制imageView.image = [image copy];应用程序仍然在同一个地方崩溃。

非常感谢健

4

2 回答 2

1

BarCode Engine 可能未启用 ARC。

要禁用一些不是为 ARC 支持而设计的文件,我们可以向编译器显示通过此命令禁用 ARC

-fno-objc-arc

将此命令放在所有编译源都存在的项目构建阶段(即项目名称中的所有类都将显示)

ZBarSDK这个条形码,二维码解码非常简单易用和更强大的API。

于 2012-04-10T04:35:02.597 回答
1

[Not A Type retain]表示您将一个不是 UIImage 的对象传递给 UIImageView 的 image 属性,然后该方法尝试识别它的类型以在该imagevVew.image = image行发送保留。NSLog 它的类型NSLog("%@", NSStringFromClass([image class]));

编辑:我建议您将这样一个旧项目转换为 ARC(我引用:“它与 ios 2.1 相关联”)。使用链接器标志 -fno-objC-arc 并为与该项目相关的每个文件禁用 ARC。然后,检查你的 imageView 是否时髦,尝试将你的图像设置为 nil,或者完全删除该行并运行。

于 2012-04-10T01:37:08.567 回答