2

Stefanhafeneger によるこのバーコード ソース コードをプロジェクトに含めようとしています。簡単なカメラの例とバーコード エンジンから始めました。最初のバーコード デコードではすべてが正常に機能します。2回目で試すとEXC_BAD_ACCESSになります。その後、アプリケーションがクラッシュするのは 1 回だけです。

以下は、アプリケーションがクラッシュする様子を記録した画面です。

私はアプリケーションで、Google のこの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

[Not A Type retain]UIImage ではないオブジェクトを UIImageView の image プロパティに渡すことを示している場合、メソッドはそのタイプを識別して、imagevVew.image = image行で保持を送信しようとします。タイプの NSLogNSLog("%@", NSStringFromClass([image class]));

編集:このような古いプロジェクトを ARC に変換することはお勧めしません(引用: 「iOS 2.1 に対してリンクされています」)。リンカー フラグ -fno-objC-arc を使用し、そのプロジェクトに関連するすべてのファイルに対して ARC を無効にします。その後、imageView がファンキーでないことを確認し、イメージを nil に設定してみるか、行を完全に削除して実行してください。

于 2012-04-10T01:37:08.567 に答える
1

BarCode Engine が ARC に対応していない可能性があります。

ARCサポート用に設計されていない一部のファイルを無効にするには、このコマンドを使用してARCを無効にすることをコンパイラに示すことができます

-fno-objc-arc

このコマンドを、すべてのコンパイル済みソースが存在するプロジェクト ビルド フェーズに配置します (つまり、プロジェクト名のすべてのクラスが表示されます)。

ZBarSDK非常にシンプルで使いやすく、このバーコード、qr コードのデコード用のより強力な API です。

于 2012-04-10T04:35:02.597 に答える