gpt4 book ai didi

ios - 如何快速修复此 try/guard 错误

转载 作者:行者123 更新时间:2023-11-29 01:32:18 26 4
gpt4 key购买 nike

尝试学习 swift 2.0。得到了这段代码,但它失败了,错误可以抛出并且错误,没有标记为尝试并且不处理错误。上线device.lock...

func focusTo(value : Float) {
if let device = captureDevice {
if(device.lockForConfiguration()) {
device.setFocusModeLockedWithLensPosition(value, completionHandler: { (time) -> Void in
//
})
device.unlockForConfiguration()
}
}
}

我确信这非常简单,但是有人可以准确地概述一下语法的外观吗?我想我应该理想地使用快速的“守卫”指令而不是尝试。

最佳答案

编辑:guard 仅确保device.lockForConfiguration() 不返回false。如果它抛出错误,那么它必须被 do - try - catch 包裹:

在这种情况下,lockForConfiguration() 不会返回Bool,因此与guard 无关。

do {
try device.lockForConfiguration()

device.setFocusModeLockedWithLensPosition(...)
device.unlockForConfiguration()

} catch let error as NSError {
if error.code == 0 {
print("Error code: 0")
}
}

语法是:

guard device.lockForConfiguration() else {
print("Lock configuration failed!!1")
return
}

device.setFocusModeLockedWithLensPosition()
device.unlockForConfiguration()

你甚至可以用它来代替if:

guard let device = captureDevice else {
print("Device is nil!")
return
}

// Do things with device

关于ios - 如何快速修复此 try/guard 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33327417/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com