2017-06-25 4 views
0

do/catchブロックに変数を割り当てて、その変数をファイル内でさらに参照しようとしています。私が行うときしかし、私はXcodeで、次のエラーを取得:未解決の識別子のdo/catchブロック内の変数を参照するときに未解決の識別子を使用する

使用すると、 'captureDeviceInput'

は、これは私のコードです:

do { 
    let captureDeviceInput = try AVCaptureDeviceInput(device: captureDevice) as AVCaptureDeviceInput 
} catch let error { 
    print("\(error)") 
    return 
} 

captureSession = AVCaptureSession() 

captureSession?.addInput(input: captureDeviceInput as AVCaptureDeviceInput) 

それはXcodeのは認識していないようですcaptureDeviceInput変数。これを解決するには何ができますか?

+0

私は私が従うとは思わない。 'do'ブロックはブロックなので、' captureDeviceInput'(とその中で宣言されているもの)はそのブロックにスコープされます。他の場所では使用できません。 – crizzis

+0

@crizzisはい。それは私が知る必要があったすべてです。あなたが言うことができるように、私は素早くn00bです! –

答えて

0

captureDeviceInputはローカルで宣言されています。つまり、doのスコープにのみ表示されます。

コードもすべてdoスコープに入れるのは良い習慣です。

do { 
    let captureDeviceInput = try AVCaptureDeviceInput(device: captureDevice) as AVCaptureDeviceInput 
    captureSession = AVCaptureSession() 
    captureSession?.addInput(input: captureDeviceInput as AVCaptureDeviceInput) 
} catch { 
    print("\(error)") 
    return 
} 
+0

迅速な返信をありがとう! –

関連する問題