2017-07-14 4 views
0

captureOutput関数が実行を停止しない以下のコードがあります。このため、prepare(for segue)機能も実行されていません。Funcは実行を停止しません

2017-07-14 13:15:50.142147 [9101:1993811] [MC] Reading from public effective user settings. 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 7 fatal error: Index out of range (lldb)

+1

質問を編集してすべてのコードを削除したのはなぜですか?それは今や無意味です – jrturton

+0

@ Annabelle Sykesあなたのために以下の解決策が働いたのですか? –

答えて

0

以前に確立したキャプチャセッションの手動での実行を停止する必要があります。サンプルコードは以下の通りです - あなたはif文のいずれかであなたのバーコードスキャンから結果を得た後

if metadataObj.stringValue != nil { 

       print(objMetadataMachineReadableCodeObject.stringValue) 
       captureSession?.stopRunning() 
       scannedCode= metadataObj.stringValue 

       // call the below line in the main thread once your background process is done above 
       self.performSegue(withIdentifier: "Seguename", sender: self) 

      } 

、あなたはあなたのスキャンが完了することを確認している、あなたは、キャプチャセッションを停止する必要があります。私はあなたのmetadatobjが無限の文字列値を持っていると仮定して、この例ではキャプチャセッションを停止しました。

0

継続的にあなたにデータをキャプチャしますので、あなたには、いくつかのメディアをキャプチャしているようだ:

は、ここに私のコンソール出力です。 メタデータが取得されないと、metadataObjects[0]がクラッシュします。

チェックmetadataObjects.count使用前metadataObjects[0]

関連する問題