0

2D (QRCode、DataMatrix) と 1D バーコード (UPC、EAN) の両方で機能する を初期化しようとしていますZXingWidgetController。私の質問は、これが可能かどうかです。

これは私が使用するコードです

ZXingWidgetController *widController = [[ZXingWidgetController alloc] initWithDelegate:self showCancel:YES OneDMode:NO];

QRCodeReader* qrcodeReader = [[QRCodeReader alloc] init];
DataMatrixReader* dmReader = [[DataMatrixReader alloc] init];

MultiFormatUPCEANReader* upceanReader = [[MultiFormatUPCEANReader alloc] init];
MultiFormatOneDReader* oneDReader = [[MultiFormatOneDReader alloc] init];

NSSet *readers = [[NSSet alloc ] initWithObjects:qrcodeReader,dmReader,upceanReader,oneDReader, nil];

[qrcodeReader release];
[dmReader release];
[upceanReader release];
[oneDReader release];

widController.readers = readers;
[readers release];

初期化すると、次のエラーでアプリがOneDMode:YESクラッシュします

-[Not A Type _cfTypeID]: message sent to deallocated instance 0xded0270

しかしOneDMode:NO、初期化を行うと、アプリはクラッシュしませんが、バーコードに対しても機能せず、QR コードと 2D データマトリックス コードでのみ機能します。

これが可能か不可能か、可能であればどうすればよいか教えていただけますか?

どんな助けでも事前に感謝します。

4

2 に答える 2

0

私の知る限り、OneDMode 変数が存在する理由は、1D コードと 2D コードのどちらを探しているのかを ZXing に通知する必要があるためです。

それとは別に、あなたが抱えている本当の問題はメモリ管理にあるようです。割り当て解除されたインスタンスにメッセージが送信された場合は、何かをリリースするのが早すぎたことを意味します。手動のメモリ管理ではなく、ARC を使用することを強くお勧めします。

あなたの特定のエラーは通常、ARC に変換した後に人々が目にするものであるため、実際にどのような状態にあるのかはわかりません。ただし、この他の質問を見て、実際の問題を追跡するのに役立つかどうかを確認してください。は。

-[型保持ではありません]: 割り当て解除されたインスタンスに送信されたメッセージ

于 2012-09-12T12:51:45.357 に答える
0

svn でトランク コードを使用する必要があります。2.0 リリース以降、いくつかの 1D 変更がありました。

ただし、「1D コードが iOS デバイスで機能しないのはなぜですか?」という質問も参照してください。ZXing FAQで。

于 2012-09-12T19:54:18.087 に答える