2012-09-08 30 views
8

Tôi đã tải dự án zXing vào dự án của riêng tôi. Nó tải tốt, máy quét zXing bật lên sau khi gọi nút.Máy quét QR zXing iPhone - chức năng didscanresult không bao giờ cháy

Tôi có thể loại bỏ trình điều khiển chế độ xem trên thezxingControllerDidCancel nhưng khi tôi quét mã QR, không có mã nào được công nhận và do đó hàm didScanResult không bao giờ kích hoạt.

Có ai có ý tưởng nào về vấn đề này không?

Hàm didScanResult ở bên dưới.

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

}

Lưu ý: Tôi không chắc chắn nếu điều này là có liên quan, nhưng khi quét đi lên, tôi có được điều này đăng nhập bằng ứng dụng: "wait_fences: thất bại trong việc nhận được trả lời: 10.004.003"

+0

Bạn có thể đăng cách tạo và hiển thị ZXingWidgetController không? –

+0

Về cơ bản tôi đã xem qua hướng dẫn này về việc thêm nó vào dự án của tôi (http://yannickloriot.com/2011/04/how-to-install-zxing-in-xcode-4/) Vì vậy, tôi đã nhập chúng vào bộ điều khiển xem của tôi .h file Sử dụng các hàm 'didScanResult' và 'zxingControllerDidCancel' của ZXingDelegate. zxingControllerDidCancel hoạt động hoàn hảo như đã nêu trước đây. Điều này có hữu ích không? –

+0

Xem [câu hỏi này] (http://stackoverflow.com/questions/1371346/wait-fences-failed-to-receive-reply-10004003) để giải quyết lỗi 10004003. – Daniel

Trả lời

4

Hướng dẫn đó không đề cập đến việc bạn phải thêm QRCodeReader vào nhóm người đọc của ZXingWidgetController.

ZXingWidgetController có thuộc tính được gọi là readers, là một số NSSet chứa các phiên bản của người đọc (ví dụ: thể hiện QRCodeReader). Nói chung, nhiệm vụ của độc giả là phân tích hình ảnh máy ảnh của bạn chụp và trích xuất thông tin được mã hóa. ZXingWidgetController của bạn phải biết về người đọc nó nên sử dụng, nếu không nó không có cơ hội để làm bất cứ điều gì có ý nghĩa. Vì vậy, bạn phải đặt thuộc tính readers trước khi trình bày ZXingWidget.

Dự án ZXing có ứng dụng mẫu thể hiện điều này. Nếu bạn sử dụng ARC, thì

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]; 

nên làm.

+0

Bạn chắc chắn là một nhà vô địch! Cảm ơn bạn rất nhiều vì sự giúp đỡ của bạn - Nó hoạt động hoàn hảo ngay bây giờ :) –