Для режима камеры ZBar не имеет понятия о сбое после определенного периода времени. Вы должны будете определить это.
Я бы определил метод примерно так:
- (void)checkIfScanComplete {
if(zbarWidgetController.decoding) { // you may have to add a property for decoding
// alternatively, check if captureSession == nil
[zbarWidgetController cancelled]; // cancelled is part of CancelDelegate protocol
// show your error message, but on be sure you do it on main thread
}
}
Затем вызовите его через произвольный интервал времени, например:
[self performSelector:@selector(checkIfScanComplete) withObject:nil afterDelay:yourTimeInterval];