Xcode Hatalarına Çözüm

Hatalardan bıktık usandık. O zaman Xcode hatalarına çözüm vakti 🕓

 

Ön Bilgi

Merhaba, bu yazıda Xcode da karşılaşmanız muhtemel hataları listeleyeceğim ve her hatanın sebebini ve çözüm yolunu görmüş olacağız.

Kendim geliştirme yaparken karşılaştığım hataları genelde Notes uygulamasına not alırım ve bulduğum çözüm yolunu yazarım. Sonuçta aynı hata ile ilerde bir daha karşılaşabiliriz ve bir daha Stackoverflow da deli gibi cevap aramak istemeyiz değil mi?

Size de bu alışkanlığı kazanmanızı tavsiye ediyorum.

debug_blue_1304613

Şimdi listeye başlayalım 🔥🔥🔥

  • “this class is not key value coding-complient”

Sebep: Muhtemelen değişkenin IBOutlet bağlantısını kopardınız veya ismini değiştirdiniz.

Çözüm: IBOutlet bağlantılarını ve değişken isimlerini kontrol edin.

 

  • “Extra argument ‘sender’ in call”

Sebep: Genelde süslü parantezin yanlış kullamınından kaynaklıdır. Eksik ya da fazla süslü parantez { } kullanmış olabilirsiniz.

Çözüm: Süslü parantezi nerede kullandığınıza dikkat edin. Açtığınız parantezi doğru yerde kapattığınıza emin misiniz?

 

  • “Expected parameter type following ‘:’”

Sebep: func sözcüğünü gereksiz yere kullandığınızda meydana gelmiş bir hata olabilir. Bir fonksiyon yazıp daha sonra bunu çağırmak istediğiniz de yine başında func kelimesi mi kullandınız?

Çözüm: func kelimesini nerede kullandığınıza dikkat edin. Fonksiyonu tanımlarken func yazdıysak, çağırırken sadece fonksiyon ismini belirtmemiz gerekli.

 

  • “unrecognized selector sent to instance”:

Sebep: Yakalaması zor bir sorun olabiliyor. Çoğu zaman bir objeyi başka bir sınıfta kullandığınızda meydana geliyor çünkü kopyaladığınız sınıfta bu objenin bağlantılarını doğru yapmıştınız. Şimdi yeni lokasyonunda bu bağlantılara sahip değilki. Objeye sağ tıklayın. Kim bilir kaç tane kullanmadığınız bağlantı var…

Çözüm: Objelerin bağlantılarına dikkat etmelisiniz. Özellikle bir objeyi başka bir sınıfa kopyaladıysanız bu objenin kullanmadığınız bağlantılarını kaldırın.

 

  • “Parse Issue” or “Expected <something>”

Sebep: Bir yerlerde parantez veya süslü parantez koymayı unutmuş olabilirsiniz

Çözüm: Açtığınız parantezi kapattınız mı? Bütün kod karman çorman mı oldu? Yorum satırlarıyla hangi parantezin nereye ait olduğunu yazarsanız daha az sorunla karşılaşırsınız.

 

  • “this class is not key value coding-compliant for the key”

Sebep: Kullandığınız sınıfta verdiğiniz identifier isminin bulunamaması ile alakalı bir durum olabilir.

Çözüm: Konsol ekranında hangi identifier ismi için hata ürettiğini bulun.

Storyboard dosyanızın kaynak kodunu açın. (Sağ tık -> open as source code)

<connection> ismi için aratın.

Bu connection tag leri arasında hatanın oluştuğu identifier ı tespit edin.

Bu kod bloğunu silin ve projeyi yeniden build edin

 

Xcode hatalarına çözüm bulmaya devam…

 

  • “Initializer for conditional binding must have Optional type, not ‘[String]’”

Sebep: If let yapısını kullanırken type casting işleminde force (!) kullanırsanız meydana gelebilir.

Çözüm: If let yapısını kullanıyorsanız type casting yaptığınız değeri “as?” ile kullanın, “as!” ile değil. Mesala benim durumumda hatalı kod şu idi:

 

  • “Perhaps Designated entry point is not set?”

Sebep: Bu xcode hatasını herkes almıştır 🙂

Özellikle geliştirmeye yeni başlayan arkadaşların başına gelir. Uygulamanın hangi storyboard ekranından başlayacağını belirtmediğiniz için karşılaşıyorsunuz.

Çözüm: Attributes Inspector’dan hangi ekrandan başlamak istiyorsanız “As inital View Controller” checkbox unu seçmelisiniz.Screen Shot 2018-09-21 at 11.23.42 AM.png

 

  • “NSUnknownKeyException: This class is not key value coding-compliant”

Sebep: Yaptığınız IBOutlet bağlantısının değişken ismini değiştirmiş olabilirsiniz.

Çözüm: IBOutlet veya IBAction bağlantısı için kullandığınız değişken isimlerini kafanıza göre değiştirmemelisiniz çünkü kod tarafında değiştirdiğiniz bağlantı artık storyboard daki objeye point etmiyor.

Değişken adını değiştirmek istiyorsanız bunu sağ tıklayıp refactor etmeniz gerekiyor.

Mesala değişken adını yanlışlıkla şöyle yaptınız

Şimdi “myLabel” olarak değiştirmek istiyorsunuz. Yapmanız gereken şu:

Screen Shot 2018-09-21 at 11.31.12 AM.png

 

  • “Cannot call value of non-function type ‘Bool’”

Sebep: Bool değişken tipini yanlış kullanmışsınız.

Çözüm: Syntax e alışana kadar böyle şeyler olur sorun yok 😎

Screen Shot 2018-06-11 at 6.43.58 PM.png

 

 

  • Failed to render and update auto layout status, The agent crashed

Sebep: CocoaPods güncellemesi kullandığınız kütüphaneler ile tam uyumlu olmadığından kaynaklanıyor. Projeniz yine build olur ama yine de hoş bir durum değil.

Çözüm: Pod dosyanıza girin ve aşağıdaki kodu yapıştırıp terminalden pod install komutunu çalıştırın. Ayrıca CocoaPods ile ilgili bilgi almak isterseniz CocoaPods Kullanımı dersime bakabilirsiniz.

 

Sonuç

Listeyi sürekli güncel tutacağım.

 

Lütfen siz de xcode hata ve çözümlerini bizimle paylaşın!

 

İyi kodlamalar 💻

Kimler Neler Demiş?

avatar
  Subscribe  
Bildir