2013-11-26 115 views
1

我在我的iPhone應用程序中集成了zbar,下面是掃描條形碼的代碼。zbar IOS屏幕凍結

ZBarReaderViewController *reader = [ZBarReaderViewController new]; 
reader.readerDelegate = self; 
reader.supportedOrientationsMask = ZBarOrientationMaskAll; 

ZBarImageScanner *scanner = reader.scanner; 
[scanner setSymbology: ZBAR_I25 
        config: ZBAR_CFG_ENABLE 
         to: 0]; 

[self presentModalViewController: reader 
          animated: YES]; 

完成後,我會做以下工作。

- (void) imagePickerController: (UIImagePickerController*) reader 
didFinishPickingMediaWithInfo: (NSDictionary*) info 
{ 
    id<NSFastEnumeration> results = 
    [info objectForKey: ZBarReaderControllerResults]; 
    ZBarSymbol *symbol = nil; 
    for(symbol in results) 

     break; 
    // Do what ever u want 
    [reader dismissModalViewControllerAnimated: YES]; 
} 

這樣做的問題是,我在第一時間利用IOS7和掃描完美,但是,對於第二種情況下,它會掃描之後,它不會再繼續,甚至取消按鈕不會工作和屏幕保持相機模式。我讀了它與IOS7的CPU和內存的問題,但無法弄清楚如何在我的情況下可以糾正。請給你寶貴的意見。

+1

我有同樣的問題,並最終編寫我自己的控制器ZBarReaderView。至少要獲得基本功能並不困難。你可能想嘗試一下。 (我現在正在工作,但是當我回到家時,我已經通過電子郵件向我發送了一條便條以查找我的代碼,如果您認爲它會有所幫助,我會盡快發佈。) – Mario

+0

謝謝你的伴侶,會期待得到你的hrlp!請張貼,以便它會像我一樣! – bharath

回答

1

好的,首先,請忽略我對子類化ZBarReaderView所作的評論。一段時間以來,我遇到了問題,儘管我記得嘗試過,但那不是我解決的解決方案。我有幾個建議給你。

presentViewController:animated:之後的最上面的代碼位嘗試將指針設置爲reader爲零。我做到以下幾點:

[self presentViewController:reader animated:YES completion:nil]; 
reader = nil; 

你提出將緊緊抓住讀者的視圖控制器,所以不用擔心丟失的參考。我認爲這實際上有助於記憶。 (並且,當你遇到問題時,事情首先運行,然後在多次執行後失敗,這往往是內存問題。)

除此之外,在頂部位,我關掉所有符號,然後僅啓用那些我感興趣的。例如,我可能會做這樣的事情:

// Enable only ISBN-13 & ISBN-10 barcodes 
[scanner setSymbology:0 config:ZBAR_CFG_ENABLE to:0]; 
[scanner setSymbology:ZBAR_EAN13 config:ZBAR_CFG_ENABLE to:1]; 
[scanner setSymbology:ZBAR_ISBN10 config:ZBAR_CFG_ENABLE to:1]; 

給這兩個建議一試,特別是關於設置參考零的第一個。這可能有幫助。

+0

你好馬里奧,謝謝你的詳細回覆。試着用上面給出的建議。但是,我仍然有同樣的問題,這裏是我的發現。我第一次掃描時,綠色的矩形條出現,捕捉並傳出。第二次掃描時,綠色條出現,立即消失,屏幕掛起。不能改變方向。當我嘗試刪除應用程序時,它會返回到凍結屏幕。您能否建議在作業完成後如何關閉掃描儀 – bharath

+0

這個問題有點難以理解,因爲我沒有發現您發佈的代碼存在問題。所以,我有兩件事給你。首先,您是否嘗試過使用掃描儀來構建最簡單的玩具應用程序?無論您的簡單應用程序是否重現該問題,這樣做都可以更容易地找出問題。 (我猜猜問題出在你沒有發佈的代碼上。)如果你在一個非常簡單的應用程序中重現了這個問題,你可以在Github上發佈整個事情,或者讓別人看一看。其次,你使用的是什麼版本的ZBar SDK? – Mario