为什么 TextView.text 是空的

Why TextView.text is empty

在我的 iOS 应用程序中,我有 ViewController 带有 Label 和 TextView。默认情况下,它们都没有文本。在 ViewController 的 viewWillAppear 方法中,我检查 - 如果它们为空 - 我将一些来自服务器的字符串放在那些 Label 和 TextView 中。它工作正常,我在屏幕上看到了这个字符串。

但是当我再次打开此 ViewController 并且 viewWillAppear 方法再次运行时 - 它仍然认为 myTextView.text 为空并尝试从服务器获取数据。 myLabel.text 完全符合我的预期 - 它的文本值不为空。

我检查了 TextView 的出口名称是正确的。

    override func viewWillAppear(animated: Bool) {
       super.viewWillAppear(animated)
       if (myTextView.text.isEmpty) {
          NSLog("myTextView is empty - need to refresh data") 
          updateStrings() }
  }

  func updateStrings () { 
        ..... get data from server ....
            myTextView.text = string_from_server
            myLabel.text = string_from_server
            }

首先,您发布的代码看起来不像是您正在使用的代码 - 这不会编译。您需要关闭 NSLog 上的引号,并且需要打开 TextView 文本上的可选内容。

这是按要求工作的同一功能的一个版本

override func viewWillAppear(animated: Bool)
{
    super.viewWillAppear(animated)

    if (myTextView.text!.isEmpty)
    {
        NSLog("myTextView is empty - need to refresh data")
        myTextView.text = "Hello World"  // or updateStrings()
    }
}

您是重新加载此视图控制器,还是每次都为其创建一个新实例?