为什么TextView.text为空

时间:2016-02-05 07:02:09

标签: ios xcode swift xcode7

在我的iOS应用程序中,我使用带有Label和TextView的ViewController。默认情况下,它们都没有文本。在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
            }

1 个答案:

答案 0 :(得分:0)

首先,您发布的代码看起来并不像您正在使用的代码 - 这不会编译。您需要关闭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()
    }
}

您是在重新加载此视图控制器,还是每次都在创建它的新实例?