2

アプリでバーコードを読み取るために、ZBarSDK のバージョン 1.2 (およびベータ 1.3.1 を試行中) を使用しています。iOS 5 と 6 では問題なくこのコードをしばらく使用していますが、iOS 7 ではカメラの初期化に問題があるようです。ZBarReaderView で start メソッドを呼び出すと、カメラの初期化に 30 ~ 60 秒、またはそれ以上かかります。ユーザーはその間ずっと黒いカメラ ビューを見て、アプリが機能するかどうか疑問に思っています。

ビューが初期化されると、問題なく何度でも閉じて再度開くことができ、すばやく開きます。

コードの関連部分は次のとおりです。

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

そのコードはすべて迅速に実行されますが、ZBarReaderView start への dispatch_queue_create 呼び出しで、長い間ハングアップします。

何か案は?

4

1 に答える 1