2012-09-12 3 views
0

2D (QRCode, DataMatrix) 및 1D 바코드 (UPC, EAN) 모두에서 작동 할 수있는 ZXingWidgetController을 초기화하려고합니다. 이것이 가능한지 아닌지는 제 질문입니다. ZXing 2.0은 iPhone에서 동시에 2D (QRCode, DataMatrix) 및 1D 바코드를 모두 스캔 할 수 있습니까?

내가 초기에 OneDMode:YES를 넣으면 내가

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

를 사용하는 코드이며, 다음과 같은 오류

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

으로하지만 경우 응용 프로그램이 충돌 나는 초기화에 OneDMode:NO를 넣어 응용 프로그램이 충돌하지 않지만 바코드에서도 작동하지 않으며 QRCodes & 2D 데이터 매트릭스 코드에서만 작동합니다.

이것이 가능하거나 불가능한 경우 알려주시겠습니까?

도움이 될만한 정보가 없습니다.

답변

0

내가 아는 한 ZXing은 1D 또는 2D 코드를 찾고 있는지 여부를 알아야 할 필요가 있기 때문에 OneDMode 변수가 존재합니다.

그렇지만 실제 문제는 메모리 관리에있는 것처럼 보입니다. 언제든지 메시지가 할당 취소 된 인스턴스로 보내 졌음을 의미합니다. 즉, 너무 일찍 릴리스했음을 의미합니다. 수동 메모리 관리 대신 ARC를 사용하는 것이 좋습니다.

일반적으로 특정 오류는 사용자가 ARC로 변환 한 후 표시되는 것이므로 실제 상태를 잘 모릅니다. 그러나이 다른 질문을 살펴보고 추적 할 수 있는지 알아야 할 수도 있습니다 진짜 문제는 뭐지?

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

0

당신은 SVN에서 트렁크 코드를 사용해야합니다. 2.0 릴리스 이후 1D 변경 사항이 있습니다.

"iOS 기기에서 1D 코드가 작동하지 않는 이유는 무엇입니까?" ZXing FAQ

관련 문제