我使用Xcode 7将我的应用更新为Swift 2.这是我的ViewController viewDidLoad的代码。
let input: AnyObject! = AVCaptureDeviceInput.deviceInputWithDevice(captureDevice, error: &error)
在线
<?php
error_reporting(0);
ini_set('display_errors', 0);
$streamContext = stream_context_create(array('http'=>
array(
'method' => 'GET',
'timeout' => 1, // timeout in seconds (varies +- 1 sec or so)
)
));
$iFreeNode = -1;
while (true) {
for ($i = 0; $i <= 9; $i++) {
$bNodeAvailable = @file_get_contents('http://127.0.0.1:XXXX'.$i.'/ping', false, $streamContext);
if ($bNodeAvailable === false) {
//echo "Node ".$i." busy.<br>";
} else {
if ($bNodeAvailable = "PING=NODE.FREE") {
//echo "Node ".$i." available.<br>";
$iFreeNode = $i;
break;
} else {
//echo "Node ".$i." busy.<br>";
}
}
}
if ($iFreeNode > -1) { break; }
}
echo file_get_contents("http://127.0.0.1:XXXX".$iFreeNode."/".$_REQUEST['script']."/".$_REQUEST['query']."/".$_REQUEST['sort']."/".$_REQUEST['num']);
?>
我在调用中收到错误额外参数错误。我已经尝试使用方法do {}并捕获{}但它没有工作,我总是得到错误。
我该如何解决?感谢
答案 0 :(得分:16)
Swift 2引入了新的错误处理。要解决您遇到的问题,您需要catch
错误,而不是将NSError
对象传递给AVCaptureDevice
方法:
override func viewDidLoad() {
super.viewDidLoad()
do {
let captureDevice = AVCaptureDevice.defaultDeviceWithMediaType(AVMediaTypeVideo)
let input = try AVCaptureDeviceInput(device: captureDevice)
// Do the rest of your work...
} catch let error as NSError {
// Handle any errors
print(error)
}
}
如需更深入的解释,请查看本文:
答案 1 :(得分:0)
AVCaptureDeviceInput
不再存在类型方法,请参阅 - &gt; https://developer.apple.com/library/prerelease/ios/documentation/AVFoundation/Reference/AVCaptureDeviceInput_Class/index.html#//apple_ref/swift/cl/c:objc(cs)AVCaptureDeviceInput
(看起来你可能想要使用init(device:)
)
...作为一个方便的提示:只要您不通过网络浏览开发者库,如果您不确定自己是否正在查看最新的预发布信息。文档版本检查URL - &gt;添加&#39; /预发布&#39;介于&#39;图书馆之间和&#39; / ios&#39;如有必要:)