2012-09-12 75 views
0

我想初始化一個ZXingWidgetController,可以適用於二維(QRCode,DataMatrix)和一維條碼(UPC,EAN)我的問題是如果這是可能的或不。ZXing 2.0可以在iPhone上同時掃描2D(QRCode,DataMatrix)和1D Barcode嗎?

這是我的代碼使用

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在初始化過程中,應用程序不會崩潰,但它也不適用於條形碼,並且僅適用於QRCodes & 2D數據矩陣代碼。

你能告訴我這是否可能,如果是,如何做?

任何幫助提前感謝。

回答

0

據我所知,ZXing需要知道它是在尋找一維或二維碼,這就是OneDMode變量存在的原因。

除此之外,它看起來像真正的問題是在內存管理。任何時候你看到一條消息被髮送到一個釋放的實例,這意味着你發佈的東西太早。我強烈建議使用ARC而不是手動內存管理。

您的特定錯誤通常是人們在轉換爲ARC後看到的,因此我不確定您實際處於什麼狀態。但是,您可能需要查看另一個問題,看看它是否有助於您追蹤你真正的問題是什麼。

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

0

你應該在SVN使用主幹代碼。自2.0版本發佈以來,出現了一些變化。

但也請參閱「爲什麼1D代碼不適用於iOS設備?」在ZXing FAQ