嗨,我是新手,我正在尝试解码以[Byte]形式发送回给我的字节数组?当我尝试使用
if let string = String(bytes: d, encoding: .utf8) {
print(string)
} else {
print("not a valid UTF-8 sequence")
}
它说它需要被打开。我无法更改从框架返回的返回可选数组的基本代码。
答案 0 :(得分:4)
使用guard let
guard let unwrappedBytes = d else { return }
通过此操作,您将获得与以前完全相同的数据,但没有问号。
我知道很难理解Swift中的可选内容。我建议检查一下Apple Docs,它非常好: https://developer.apple.com/documentation/swift/optional
答案 1 :(得分:-3)
[字节]?表示这是一个可选数组。 ?是此处的选项符号。
可选变量可能有值或没有值,这意味着它的可能性值被该变量重新调整为null。从参考链接中读取:https://cocoacasts.com/what-is-an-optional-in-swift
将代码更改为:
if let string = String(bytes: d!, encoding: .utf8) {
print(string)
} else {
print("not a valid UTF-8 sequence")
}
}
我放置了一个符号!与d。这是快速展开的可选方法。