我刚开始使用快速编程,而且我遇到了错误"使用未解析的标识符'输入'"在以下代码中:
func startReading () -> Bool {
let captureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
do {
let input: AnyObject! = try AVCaptureDeviceInput.init(device: captureDevice)
}
catch let error as NSError {
print(error.localizedDescription)
return false
}
captureSession = AVCaptureSession()
captureSession?.addInput(input as! AVCaptureInput)
错误会停止构建并突出显示此代码的最后一行。我想我理解错误,就是说输入变量可能没有初始化,但我没有看到解决方法。谢谢你的帮助!
答案 0 :(得分:0)
大括号是Swift中的一个范围。 do块是一个范围。您在do块中声明了input
。因此,对于do块之外的代码,input
不可见。所以把其余的代码放在do块中。
答案 1 :(得分:0)
有一些错误
do
,然后在其外部使用这是正确的代码
func startReading () -> Bool {
let captureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
do {
let input = try AVCaptureDeviceInput(device: captureDevice)
let captureSession = AVCaptureSession()
captureSession.addInput(input)
return true
} catch {
print(error)
return false
}
}
答案 2 :(得分:0)
input
变量超出了do { }
声明的范围。这样做:
let captureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
do {
let input: AnyObject! = try AVCaptureDeviceInput.init(device: captureDevice)
captureSession = AVCaptureSession()
captureSession?.addInput(input as! AVCaptureInput)
}
catch let error as NSError {
print(error.localizedDescription)
return false
}
答案 3 :(得分:0)
正如@matt所描述的那样,do语句的范围限制了<-- index.html -->
<!DOCTYPE html>
<html>
<head>
<!-- CSS -->
<!-- load up bootstrap and add some spacing -->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
<style>
body { padding-top:50px; }
form { margin-bottom:50px; }
</style>
<!-- JS -->
<!-- load up angular and our custom script -->
<script src="http://code.angularjs.org/1.2.13/angular.js"></script>
<script src="app.js"></script>
</head>
<!-- apply our angular app and controller -->
<body ng-app="formApp" ng-controller="formController">
<div class="col-xs-12 col-sm-10 col-sm-offset-1">
<h2>Angular Checkboxes </h2>
...
<!-- MULTIPLE CHECKBOXES -->
<label>Favorite Colors</label>
<div class="form-group">
<label class="checkbox-inline">
<input type="checkbox" name="favoriteColors" ng-model="formData.favoriteColors.red"> Red
</label><br>
<label class="checkbox-inline">
<input type="checkbox" name="favoriteColors" ng-model="formData.favoriteColors.blue"> Blue
</label> <br>
<label class="checkbox-inline">
<input type="checkbox" name="favoriteColors" ng-model="formData.favoriteColors.green"> Green
</label>
</div>
...
<!-- SHOW OFF OUR FORMDATA OBJECT -->
<h2>Sample Form Object</h2>
<pre>
[[answer]]
</pre>
</div>
</body>
</html>
声明的可见性。
有一种简单的方法可以解决这个问题,保持所有范围不受影响:只需在外部范围内声明app.yaml
。
let input