如何在Swift5、Swift5中使用try with data.withUnsafeBytes()?
How to use try with data.withUnsafeBytes() in Swift 5, Swift5?
如果我在我的代码中选择点击 withUnsafeBytes,声明声明该函数抛出:
func withUnsafeBytes<R>(_ body: (UnsafeRawBufferPointer) throws -> R) rethrows -> R
当我在我的代码中输入 do try catch 时(见下文),我收到了警告警告:
No calls to throwing functions occur within 'try' expression
以及捕获的匹配警告:
'catch' block is unreachable because no errors are thrown in 'do' block
是我的代码不正确还是 Xcode 的问题?
func getIntValue(data:Data)->Int
{
var d = -1
do {
d = try data.withUnsafeBytes {
[=13=].load(as: Int.self)
}
} catch {
return d
}
return d
}
感谢您的意见。
throws -> rethrows
语法执行以下操作:
- 如果闭包体中的代码包含抛出函数,则错误将被重新抛出,您必须添加
try
- 如果没有抛出函数,则什么也不会发生,您不能使用
try
。
在您的示例中,出现第二种情况,因此删除 try
和 do - catch
块
如果我在我的代码中选择点击 withUnsafeBytes,声明声明该函数抛出:
func withUnsafeBytes<R>(_ body: (UnsafeRawBufferPointer) throws -> R) rethrows -> R
当我在我的代码中输入 do try catch 时(见下文),我收到了警告警告:
No calls to throwing functions occur within 'try' expression
以及捕获的匹配警告:
'catch' block is unreachable because no errors are thrown in 'do' block
是我的代码不正确还是 Xcode 的问题?
func getIntValue(data:Data)->Int
{
var d = -1
do {
d = try data.withUnsafeBytes {
[=13=].load(as: Int.self)
}
} catch {
return d
}
return d
}
感谢您的意见。
throws -> rethrows
语法执行以下操作:
- 如果闭包体中的代码包含抛出函数,则错误将被重新抛出,您必须添加
try
- 如果没有抛出函数,则什么也不会发生,您不能使用
try
。
在您的示例中,出现第二种情况,因此删除 try
和 do - catch
块