将数据转换为String将返回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)
}
}
我不知道原因。 另外,如何将String转换回Data?
答案 0 :(得分:3)
这不起作用,因为当您将Image的字节解释为String时,该字符串无效。并非每个混乱的数据都是有效的utf8字符串。即,并非每个n比特(8,有时是16)的集合都是有效的utf8代码点。 Swift String api循环遍历它传递给它的数据对象,以验证它是否是一个有效的字符串。在您的情况下,没有理由认为此数据是有效的字符串,因此它不起作用。
关于utf8的好读物: https://www.objc.io/issues/9-strings/unicode/