我们正在使用ZBarSDK的1.2版本(并试用beta 1.3.1)来读取我们的应用程序中的条形码。我们已经在iOS 5和iOS 6中使用此代码一段时间没有问题,但是iOS 7在初始化相机时似乎存在一些问题。当我们在ZBarReaderView中调用start方法时,需要30到60秒甚至更长的时间来初始化相机。用户一直看到黑色相机视图,他们想知道该应用程序是否工作。iOS 7和ZBarReaderView开始需要很长时间
一旦视图被初始化,我们可以关闭它并重新打开任意次数而没有问题,并且它会很快打开。
这里是我们的代码的相关部分:
- (void)showAnimated:(BOOL)animated
{
[self.controller overlayWillShow:self];
dispatch_async(dispatch_queue_create(0, 0), ^{[self.zBarReaderView start];});
CGRect frame = self.superview.frame;
frame.origin.y = -hiddenYOrigin;
[UIView animateWithDuration:0.4 animations:^{
self.superview.frame = frame;
} completion:^(BOOL finished){
if (((ScanController *)self.controller).scanMode == ScanModeManualEntry) {
[self.manualEntryTextField becomeFirstResponder];
}
self.showing = YES;
[self.controller overlayDidShow:self];
}];
}
所有代码的执行迅速,但dispatch_queue_create调用ZBarReaderView开始是我们都挂了很长一段时间。
任何想法?
先生,你只是拥有属于自己的300点赏金。这一变化诀窍!非常感谢您抽出宝贵的时间来看这一个。 – davidethell
没问题:确保你检查你没有其他实例在后台线程中调用一些zBarReaderView方法。 – vinaut