2017-06-25 1 views
0

Ich weise eine Variable in einem do/catch Block zu und versuche dann, diese Variable weiter unten in meiner Datei zu referenzieren. Aber wenn ich es tue, erhalte ich den folgenden Fehler in Xcode:Verwendung von nicht aufgelösten Bezeichnern beim Verweisen auf Variable im do/catch-Block

Verwendung von ungelösten Bezeichner 'captureDeviceInput'

Dies ist mein Code:

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

captureSession = AVCaptureSession() 

captureSession?.addInput(input: captureDeviceInput as AVCaptureDeviceInput) 

Es scheint Xcode ist nicht die Anerkennung captureDeviceInput Variable. Was kann ich tun, um dies zu beheben?

+0

Ich glaube nicht, dass ich folge. Der 'do'-Block ist ein Block, und so ist' captureDeviceInput' (und alles, was darin deklariert ist) auf diesen Block beschränkt, Sie können ihn nirgendwo anders verwenden. – crizzis

+0

@crizzis Ja. Das war alles, was ich wissen musste. Wie du wahrscheinlich weißt, bin ich ein Swift n00b! –

Antwort

0

captureDeviceInput wird lokal deklariert, das bedeutet, dass es nur im Bereich do sichtbar ist.

Es ist gute Angewohnheit, alle gute Code auch in der do Bereich.

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

Danke für die schnelle Antwort! –

Verwandte Themen