无法更改处理函数中的 UILabel 文本
Cannot change UILabel text in a handler function
我有一个 UILabel
@IBOutlet weak var log: UILabel!
我正在使用 SocketIO 创建调用处理程序。
self.socket.on("starwars") {[weak self] data, ack in
log.text = "George Lucas"
return
}
但它不起作用。
我尝试在 viewDidLoad 中做同样的事情,它在那里工作。
我认为原因是 UILabel
很弱。当超出closure/block,"log"将被释放。所以你的标签没有文字。
编辑:在哪里连接标签(如IBOutlet
)使它像(nonatomic, strong)
。
尝试如下,
self.socket.on("starwars") {[weak self] data, ack in
dispatch_async(dispatch_get_main_queue()) {
log.text = "George Lucas"
}
return
}
我有一个 UILabel
@IBOutlet weak var log: UILabel!
我正在使用 SocketIO 创建调用处理程序。
self.socket.on("starwars") {[weak self] data, ack in
log.text = "George Lucas"
return
}
但它不起作用。
我尝试在 viewDidLoad 中做同样的事情,它在那里工作。
我认为原因是 UILabel
很弱。当超出closure/block,"log"将被释放。所以你的标签没有文字。
编辑:在哪里连接标签(如IBOutlet
)使它像(nonatomic, strong)
。
尝试如下,
self.socket.on("starwars") {[weak self] data, ack in
dispatch_async(dispatch_get_main_queue()) {
log.text = "George Lucas"
}
return
}