我有一个包含字符串类型值的数组,一个字符串的值包含符号&
,另一个包含符号^
。因此,当它们显示时间时,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"不存在于数组的其余字符串
谢谢!
答案 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
的原因。您可以通过正则表达式或字符串替换来删除它们。