转换[字节]?到[字节]

时间:2018-11-30 10:11:12

标签: ios swift

嗨,我是新手,我正在尝试解码以[Byte]形式发送回给我的字节数组?当我尝试使用

if let string = String(bytes: d, encoding: .utf8) {
    print(string)
} else {
    print("not a valid UTF-8 sequence")
}

它说它需要被打开。我无法更改从框架返回的返回可选数组的基本代码。

2 个答案:

答案 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。这是快速展开的可选方法。