Press ESC to close

Swift Main Thread Hatası

Merhaba arkadaşlar. Bu yazımda sizlere Swift ile işlem yaparken oluşan bir hatadan bahsedeceğim. Bu hata şu şekilde karşımıza çıkar.

UILabel.text must be used from main thread only

Daha çok internetten veri çektikten sonra eğerki UI’da bir işlem yaparsak bu hata ile karşılaşıyoruz. Bunun sebebi sie şu. iOS ile internetten veri çekerken ekranı kilitlemiyor iOS bu yüzden yine işlemlerini yapabiliyorsunuz. Çünkü internet hızınıza veya web servisin cevap süresine bağlı olarak bu süre değişebiliyor. Örnek vermek gerekirse eğer 10 saniye sürecekse ve siz bu işlem boyunca ekranı kitlerseniz, kullanım açısından sıkıntı yaratacaktır. 

Web servisten veri çekme işlemi için ayrı bir thread açıldığından ve siz ardından bu thread üzerinden UI güncellemesi yaptığınızda aslında bu hata ile karşılaşıyorsunuz. Bunun için DispatchQueue.main.async ile çalıştırmanız gerekmekte. Apple dökümantasyonunda bunu çok güzel açıklamış. Daha fazla bilgi almak istiyorsanız buradan ulaşabilirsiniz.

Sorularınız olursa mail veya yorum atarak ulaşabilirsiniz. İyi çalışmalar.

 

Comments (1)

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir