Storyboard UILabel 不会更新文本。

Posted

技术标签:

【中文标题】Storyboard UILabel 不会更新文本。【英文标题】:Storyboard UILabel won't update text. 【发布时间】:2017-04-12 10:14:25 【问题描述】:

我在尝试更新通过情节提要连接的 UILabel 时遇到问题。当我将我的数据注销时,它会很好地显示在控制台中,但我的标签没有按应有的方式更新:

CZWundergroundRequest *request = [CZWundergroundRequest newConditionsRequest];
    request.location = [CZWeatherLocation locationFromCoordinate: currentLocation];
    request.key = @"";
    [request sendWithCompletion:^(CZWeatherData *data, NSError *error) 
        self.currentTemperatureLabel.text = [NSString stringWithFormat:@"%f", data.current.temperature.f];
        NSLog(@"%f", data.current.temperature.f);
    ];

当我更新 ViewDidLoad 中的标签时,它工作得很好,但是一旦我尝试向它发送数据,它就不会更新。我也尝试取下标签并重新安装插座。有什么想法吗?

【问题讨论】:

尝试在主线程中更新 始终在主线程中更新 UI 元素。 【参考方案1】:

您只能在主线程上更新 UI 元素,该请求可能会在后台线程上运行以防止阻塞 UI。

如果您在main thread 上将标签设置为dispatch_async 的调用,如下所示,它应该可以解决您的问题。

dispatch_async(dispatch_get_main_queue(), ^ self.currentTemperatureLabel.text = [NSString stringWithFormat:@"%f", data.current.temperature.f]; );

【讨论】:

天哪...我知道我不应该跳过关于线程的那一章。非常感谢!

以上是关于Storyboard UILabel 不会更新文本。的主要内容,如果未能解决你的问题,请参考以下文章

如何使用情节提要设置包装文本 UILabel Xcode

如何设置自适应多行 UILabel 文本?

IOS开发之国际化篇第三章:故事版文本国际化

如何每天更新一次 UILabel

UILabel 上的奇怪行为与 StoryBoard 上的 \n

UILabel 文本未更新