Я делаю приложение Bluetooth и хочу поставить 2 метки, чтобы контролировать, подключен ли я, и отображать RSSI, поэтому я написал эту функцию
func updateLabel(){
LRSSI.text = String(RSSINb)
if(Connected == true){
LEtat.text = "Connected"
LEtat.textColor = UIColor.green
}else{
LEtat.text = "Disconnected"
LEtat.textColor = UIColor.red
}
}
Я вызываю эту функцию внутри моей функции ReadRSSI из CBPeripheral.
В моем терминале есть этот текст
Main Thread Checker: UI API called on a background thread: -[UILabel setText:]
Но когда я поворачиваю свой телефон, он обновляет ярлыки, я пытался поставить «себя» перед моими ярлыками.
Я также пытался вызвать свою функцию внутри таймера, но это выдает ошибку SIGBART
Так есть ли способ обновить метки или перезагрузить viewcontroller?
РЕДАКТИРОВАТЬ:
Вызов моей функции:
func peripheral(_ peripheral: CBPeripheral, didReadRSSI RSSI: NSNumber, error: Error?) {
print(RSSI)
peripheral.readRSSI()
RSSINb = Int(RSSI) * -1
updateLabel()
if(RSSINb > 150){
WriteValue(valeur: "z")
}
}