Swift Main Thread Hatası

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

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.

 

Leave a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.