• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 无法在 UILabel 中显示我的文本

[复制链接]
菜鸟教程小白 发表于 2022-12-11 18:37:59 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我不知道为什么我不能在我的 UILabel 中打印我的“pocetDatabaze3”。

这是我的代码:

@IBOutlet weak var aktualniPocet: UILabel!
var pocetDatabaze2 = 0
var pocetDatabaze3 = "dfh"

override func viewDidLoad() {
    super.viewDidLoad()

    if let url = NSURL(string: "http://servis.dronysitmp.cz/cteni_baterie.php") {
        let task = URLSession.shared.dataTask(with: url as URL, completionHandler: { (data, response, error) -> Void in
            //print(data)

            if let pocetDatabaze = NSString(data: data!, encoding: String.Encoding.ascii.rawValue){

                self.pocetDatabaze2 = Int(pocetDatabaze as String)!
                //self.pocetDatabaze3 = String(describing: pocetDatabaze)
            }

        }

        );
        task.resume()
    }

    pocetDatabaze3 = String(pocetDatabaze2 as Int)
    aktualniPocet.text = pocetDatabaze3

}

在 UILabel 中,它显示“0”,但应该是“25”。加载此 View 后,我还有两个操作。当我使用它们时,它会显示正确的值。剩下的就是:

@IBAction func odecteni(_ sender: UIButton) {
    pocetDatabaze2 = pocetDatabaze2 - 1
    self.pocetDatabaze3 = String(pocetDatabaze2 as Int)
    aktualniPocet.text = pocetDatabaze3
}



Best Answer-推荐答案


这是一个线程问题。 URLSession 是异步的,所以你必须在 completionHandler 中更新 UI。

let task = URLSession.shared.dataTask(with: url as URL, completionHandler: { (data, response, error) -> Void in
    //print(data)

    if let pocetDatabaze = NSString(data: data!, encoding: String.Encoding.ascii.rawValue) {

        self.pocetDatabaze2 = Int(pocetDatabaze as String)!
        self.pocetDatabaze3 = String(pocetDatabaze2 as Int)
        DispatchQueue.main.async {
            self.aktualniPocet.text = pocetDatabaze3
        }
    }

})

您需要调用 DispatchQueue.main,因为您应该在主线程中更新 UI。然后你可以注释掉另外两个调用。

关于ios - 无法在 UILabel 中显示我的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46075650/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap