XCode - EXC_BAD_ACCESS。 - [不是类型保留]

时间:2012-04-10 00:06:20

标签: ios xcode compiler-errors exc-bad-access

我正在尝试将此barcode source code by Stefanhafeneger包含在我的项目中。我用一个简单的相机示例和条形码引擎开始,一切都适用于第一个条形码解码。当我第二次尝试时,我会收到EXC_BAD_ACCESS。它只能在应用程序崩溃后工作一次。

Here is a screen recording of how the appilcation crash.

我在我的appilcation中使用谷歌的DataMatrix标签进行测试。

UfoDesign DataMatrix

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

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

debugging1 debugging2

您的信息是启用ARC的项目。有人请帮忙,我还是几个月的初学者。

这是我的项目Barcode-Datamatrix Project

的xCode文件

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

非常感谢 健

2 个答案:

答案 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代码解码。