Swift 引用do/catch块中的变量时使用未解析标识符
我正在Swift 引用do/catch块中的变量时使用未解析标识符,swift,xcode,avcapturesession,do-catch,Swift,Xcode,Avcapturesession,Do Catch,我正在do/catch块中分配一个变量,然后尝试在我的文件中进一步引用该变量。但当我这样做时,我在Xcode中得到以下错误: 使用未解析标识符“captureDeviceInput” 这是我的代码: do{ 让captureDeviceInput=尝试将AVCaptureDeviceInput(设备:captureDevice)作为AVCaptureDeviceInput }捕捉错误{ 打印(“\(错误)”) 返回 } captureSession=AVCaptureSession() capt
do
/catch
块中分配一个变量,然后尝试在我的文件中进一步引用该变量。但当我这样做时,我在Xcode中得到以下错误:
使用未解析标识符“captureDeviceInput”
这是我的代码:
do{
让captureDeviceInput=尝试将AVCaptureDeviceInput(设备:captureDevice)作为AVCaptureDeviceInput
}捕捉错误{
打印(“\(错误)”)
返回
}
captureSession=AVCaptureSession()
captureSession?.addInput(输入:captureDeviceInput作为AVCaptureDeviceInput)
Xcode似乎无法识别
captureDeviceInput
变量。如何解决此问题?captureDeviceInput
在本地声明,这意味着它仅在do
范围内可见
do {
let captureDeviceInput = try AVCaptureDeviceInput(device: captureDevice) as AVCaptureDeviceInput
captureSession = AVCaptureSession()
captureSession?.addInput(input: captureDeviceInput as AVCaptureDeviceInput)
} catch {
print("\(error)")
return
}
把所有好的代码也放在do
范围内是一个好习惯
do {
let captureDeviceInput = try AVCaptureDeviceInput(device: captureDevice) as AVCaptureDeviceInput
captureSession = AVCaptureSession()
captureSession?.addInput(input: captureDeviceInput as AVCaptureDeviceInput)
} catch {
print("\(error)")
return
}
我想我不明白。
do
块是一个块,因此captureDeviceInput
(以及其中声明的任何其他内容)的作用域是该块,您不能在任何地方使用它else@crizzis对我只需要知道这些。正如你可能知道的,我是一个敏捷的n00b!谢谢你的快速回复!