allowLossyConversion在ios中是什么意思

问题描述 投票:0回答:2

我正在使用

dataUsingEncoding(encoding: NSStringEncoding, allowLossyConversion: Bool = default) -> NSData?
函数将 String 转换为 NSData,但我不明白
allowLossyConversion
的实际含义。

和有损压缩类似吗?有人能帮我理解这个吗?

nsstring
2个回答
3
投票

如果标志为YES,并且接收方无法在不丢失某些信息的情况下进行转换,则某些字符可能会在转换中被删除或更改。例如,在将字符从 NSUnicodeStringEncoding 转换为 NSASCIIStringEncoding 时,字符“Á”变为“A”,失去重音符号。


0
投票

即使文本使用无法正确转换的字符,此选项也可以让您获得

data
。 当处理任意文本并从中生成 QR 码时,这非常有用。

例如,公司名称

McDonald's
有撇号,无法使用
data
正确转换为
.ascii

如果在函数中你传递了

false

text.data(using: .ascii, allowLossyConversion: false) 

您将从

"Apple"
->
"Apple"
以及
"McDonald's"
->
nil
收到。

同时,如果您通过了

true

text.data(using: .ascii, allowLossyConversion: true) 

您将从

"Apple"
->
"Apple"
以及
"McDonald's"
->
"McDonald?s"
收到。

© www.soinside.com 2019 - 2024. All rights reserved.