Ios UILabel.text从Socket.io发出的更新不同步
我用socket.io实现了一个简单的node.js服务器。服务器每隔一段时间发出一条消息。iOS客户端从服务器接收socket.io消息并处理数据,但随后对UILabel.text的更新不同步。例如,客户端可以接收以下值[1,2,3,4,5],值1在服务器发出2之前不会显示,值2在服务器发出3之前不会显示,依此类推 以下是iOS代码:Ios UILabel.text从Socket.io发出的更新不同步,ios,swift,socket.io,uilabel,Ios,Swift,Socket.io,Uilabel,我用socket.io实现了一个简单的node.js服务器。服务器每隔一段时间发出一条消息。iOS客户端从服务器接收socket.io消息并处理数据,但随后对UILabel.text的更新不同步。例如,客户端可以接收以下值[1,2,3,4,5],值1在服务器发出2之前不会显示,值2在服务器发出3之前不会显示,依此类推 以下是iOS代码: @IBOutlet weak var testLbl: UILabel! let manager = SocketManager(socketURL: URL
@IBOutlet weak var testLbl: UILabel!
let manager = SocketManager(socketURL: URL(string: "https://localhost:3000")!, config: [.log(true), .compress])
var socket:SocketIOClient?
override func viewDidLoad() {
socket = manager.socket(forNamespace: "/namespace")
socket?.joinNamespace()
addHandler()
socket?.connect()
}
func addHandler () {
socket.on("incoming", callback: { (dataArray, ack) in
var responseData = dataArray[0] as? [[String:String]]
var responesDataIter = responseData![0].makeIterator()
var xx: String = ""
while let xx = responesDataIter.next() {
item = xx.value
}
self.testLbl.text! = item
})
任何指针?实现确认功能,除非您从客户端获得确认,否则不要再次发出。您好,Sharad,感谢您的回复,但我认为实现确认功能不会更快地更新UILabel,因为客户端已经具有该值。我认为这是一个线程问题,所以我在代码中添加了DispatchQueue.main.async,仍然得到了相同的结果。