无法在处理函数中更改UILabel文本

时间:2016-01-07 08:37:57

标签: ios swift uilabel

我有一个UILabel

@IBOutlet weak var log: UILabel!

我正在使用SocketIO为呼叫创建处理程序。

self.socket.on("starwars") {[weak self] data, ack in
            log.text = "George Lucas"
            return
        }

但它没有用。

我尝试在viewDidLoad中做同样的事情,它在那里工作。

2 个答案:

答案 0 :(得分:3)

尝试如下,

self.socket.on("starwars") {[weak self] data, ack in
       dispatch_async(dispatch_get_main_queue()) {
       log.text = "George Lucas"
       }

        return
 }

答案 1 :(得分:-2)

我认为原因是UILabel很弱。当关闭/阻止时,“log”将被释放。所以你的标签没有文字。

修改:连接标签的位置(IBOutlet)使其像(nonatomic, strong)一样。