【问题标题】:UILabel won't display specific String variable in SwiftUILabel 不会在 Swift 中显示特定的字符串变量
【发布时间】:2017-07-03 14:57:43
【问题描述】:

我有一个包含字符串类型值的数组,字符串的一个值包含符号&,另一个包含符号^。因此,当需要显示它们时,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" 不存在于数组的其余字符串中

谢谢!

【问题讨论】:

  • 如何创建arrayStrings 数组?它是通过读取文件来填充的吗?还是调用网络服务?
  • 正在读取 csv 文件...同时当我打印时(myString)它正常显示
  • 在从 CSV 填充 print("Array: \(arrayStrings)") 后尝试(将该输出添加到您的问题中)
  • 谢谢!刚刚做了并意识到我在上面写的这件事。为什么 \0 只添加到这些字符串中?

标签: ios swift string uilabel


【解决方案1】:

\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 存在于您的字符串中。您可以通过正则表达式或字符串替换来删除它们。

【讨论】:

  • 谢谢!不知道那个。也许这与我使用 String = "#$%^&" 作为从 csv 到 Array 的字符串分隔符这一事实有关。现在我将使用 replaceOccurences 并稍后更改分隔符。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-17
  • 1970-01-01
  • 2015-06-24
相关资源
最近更新 更多