UILabel在Swift中不会显示特定的String变量

时间:2017-07-03 14:57:43

标签: ios swift string uilabel

我有一个包含字符串类型值的数组,一个字符串的值包含符号&,另一个包含符号^。因此,当它们显示时间时,UILabel仍为空白。

let myString = arrayStrings[0] // The value is "M&M" or "(0C)^3" 
myLabel.text = myString //UILabel remains blank

另一方面,当我对字符串进行硬编码时,UILabel会显示它。

myLabel.text = "M&M" //UILabel displays it normally

我该怎么办?

刚才意识到当我打印数组时,我得到以下结果:

print("Array: \(arrayStrings)" // Array: ["\0M&M\0", "\0(0C)^3\0"]

" \ 0"不存在于数组的其余字符串

谢谢!

1 个答案:

答案 0 :(得分:2)

\0表示编程中的字符串终止。所以你的String "\0M&M\0"意味着这个字符串在索引0上终止,然后再次终止。因此,当您将此字符串分配给标签时,您的标签将显示空字符串。

要调整它,执行此操作,您将看到差异。你的问题与&或^

myLabel.text = "M&M\0 Hey I have lots of stuff here but the string is already terminated"

因此,在这种情况下,您需要找出字符串中存在\0的原因。您可以通过正则表达式或字符串替换来删除它们。