将数据转换为字符串返回 nil 值。
代码:
// thus unwraps the image
if let image = image{
print("Saving image data")
// don't unwrap here
if let data = UIImagePNGRepresentation(image){
let str = String(data: data, encoding: .utf8)
print(str)
}
}
我不知道原因。 另外,如何将字符串转换回数据?
最佳答案
这不起作用,因为当您将图像的字节解释为字符串时,该字符串无效。并非每个困惑的数据都是有效的 utf8 字符串。也就是说,并非每个 n 位(8 位,有时是 16 位)的集合都是有效的 utf8 代码点。 Swift String api 循环遍历您传递给它的数据对象,以验证它是一个有效的字符串。在您的情况下,没有理由认为此 Data 是有效字符串,因此它不起作用。
关于 utf8 的好读物: https://www.objc.io/issues/9-strings/unicode/
关于 swift 3 : Converting Data to String returns a nil value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41111455/