2012-09-08 6 views
8

自分のプロジェクトにzXingプロジェクトをロードしました。 ボタンが呼び出されるとzXingスキャナーがポップアップします。iPhone zXing QRスキャナー - didscanresult関数が実行されない

zxingControllerDidCancelで表示コントローラを閉じることはできますが、QRコードをスキャンするとコードが認識されないため、didScanResult関数は決して起動しません。

誰もがこのことについて考えていますか?

didScanResult関数は次のとおりです。

-(void)zxingController:(ZXingWidgetController *)controller didScanResult:(NSString *)result{ 
resultLabel.text = result; 
NSLog(@"did scan!!!"); 
[self dismissModalViewControllerAnimated:NO]; 

}

注:私はこれが関連しているかどうかわからないんだけど、スキャナが起動したとき、私はこのアプリで記録されます:「wait_fencesは:返信受信に失敗しました:10004003」を

+0

ZXingWidgetControllerを作成して表示する方法を投稿できますか? –

+0

基本的に私はこのチュートリアルをプロジェクトに追加しました(http://yannickloriot.com/2011/04/how-to-install-zxing-in-xcode-4/) 私はそれらを私のviewcontrollersにインポートしました.hファイル ZXingDelegateの 'didScanResult'関数と 'zxingControllerDidCancel'関数を使用しました。 zxingControllerDidCancelは前述のとおり完全に動作します。 これは役に立ちますか? –

+0

10004003エラーを解決するには[この質問](http://stackoverflow.com/questions/1371346/wait-fences-failed-to-receive-reply-10004003)をご覧ください。 – Daniel

答えて

4

このチュートリアルでは、ZXingWidgetControllerの読者のセットにQRCodeReaderを追加する必要があるとは言及していません。

ZXingWidgetControllerは、NSSetという名前のプロパティ(例:QRCodeReader)を持っています。おおまかに言えば、読者の仕事は、カメラが撮った画像を分析し、コード化された情報を抽出することです。あなたのZXingWidgetControllerは利用すべき読者について知っていなければなりません。それ以外の場合は意味のあることは何もできません。したがって、ZXingWidgetを表示する前にreadersプロパティを設定する必要があります。

ZXingプロジェクトには、これを実証するサンプルアプリケーションがあります。 ARCを使用している場合は、

ZXingWidgetController *widController = [[ZXingWidgetController alloc] initWithDelegate:self showCancel:YES OneDMode:NO]; 
QRCodeReader* qRCodeReader = [[QRCodeReader alloc] init]; 
NSSet *readers = [[NSSet alloc] initWithObjects:qRCodeReader,nil]; 
widController.readers = readers; 
[self presentModalViewController:widController animated:YES]; 

とする必要があります。

+0

あなたは確かにチャンピオンです!ご協力いただきありがとうございます - これは完璧に今働いています:) –

関連する問題