当前位置: 首页 > 知识库问答 >
问题:

如何在Swift2和Xcode7测试版中添加capturesession的输入设备?

咸亦
2023-03-14

http://jamesonquave.com/blog/take-control-of-the-iphone-camera-in-iOS-8-with-swift-part-1/

我听说Swift2现在有了不同的错误处理方法,所以我猜这部分代码需要更改。但我不知道怎么做。有人能帮我做这个吗?谢了!

var err : NSError? = nil
        captureSession.addInput(AVCaptureDeviceInput(device: captureDevice, error: &err))

        if err != nil {
            println("error: \(err?.localizedDescription)")
        }

共有1个答案

卜高超
2023-03-14

为了使发布的代码与swift 2中新的错误处理要求相匹配,您需要用以下代码替换代码行:

var err : NSError? = nil
do {
    let input = try AVCaptureDeviceInput(device: captureDevice)
    captureSession.addInput(input)
} catch _ {
    print("error: \(err?.localizedDescription)")
}

这一变化的原因是苹果改变了您处理错误的方式,以减少编码出错的可能性。现在,对于任何将要抛出错误的调用,都需要有一个do catch语句。可以抛出和错误的调用需要在do语句中,错误处理需要在catch语句中找到。下面的链接中有更多关于这一变化原因的详细信息:

https://www.hackingwithswift.com/new-syntax-swift-2-error-handling-try-catch

 类似资料:
  • 问题内容: 在我的Jest单元测试中,我正在使用ColorPicker渲染组件。该组件创建一个canvas对象和2d上下文,但返回则抛出错误 我在弄清楚为什么我无法获得2D上下文时遇到了麻烦。我的测试配置可能有问题吗? 问题答案: 这是因为您的测试未在真正的浏览器中运行。Jest 用于模拟DOM的必要部分,以便能够在Node中运行测试,从而避免了样式计算和呈现浏览器通常会执行的渲染。这很酷,因为这

  • 我正在使用Selenium IDE记录函数创建测试用例。我想在应用程序的某些部分截图,我正在测试。 使用Selenium IDE的UI很容易: 命令:,目标: 但每次想要截屏时手动输入这个(或复制粘贴)是不方便的,所以我决定制作一个插件(Selenium IDE工具栏上的一个按钮),一旦我点击它,它就会将这个截屏命令添加到testcase中。 我创建了我的按钮,它可以在工具栏上看到,但现在它什么也

  • 我的项目有两个OSGi包(A和B),它们需要使用不同版本的-A需要1.1.0版本,而B需要1.1.1版本。 如果我在这个sling.properties文件中给出的javax.activation的版本大于1.1.1,那么a和B都使用系统版本(尽管文件中指定了import-packages的版本);但如果我给出的版本小于1.1.1,那么两个包都使用AEM提供的版本。 如何配置我的Bundle,以便

  • 问题内容: 我正在尝试提供一组可以重复或删除的输入。 我发现并使用了以下方法的组合:https : //jsfiddle.net/69z2wepo/36745/ 并且(因为上面的代码无法处理删除操作):https : //codepen.io/lichin-lin/pen/ MKMezg 我可能不需要指向一个特定的输入,因为在我的界面中,您应该始终只添加一个新的(如果之前的一个已填充)(我将在稍后

  • 我有这种输入类型,我想为其中一个字段添加默认值。我想将 0 添加到示例输入中的值字段中。 有什么想法吗?

  • 问题内容: 我试图弄清楚如何向将管理一些构建的Jenkins添加管理构建,以及如何将参数从管理构建传递到子构建。 问题答案: 您正在寻找参数化触发器插件。 安装插件后,请参考下面的第二张快照。转到项目页面。搜索。之后,点击 快照上方是父作业A,其中我正在定义一个字符串参数,该参数将在其子作业B中使用。 快照还是父作业A的快照,我在其中指定了下游(子)作业B并启用了该操作, 这将确保父作业A中定义的