Skip to content

Instantly share code, notes, and snippets.

@cagricolak
Last active July 5, 2019 08:12
Show Gist options
  • Save cagricolak/41d5850e7ab519471fc14b3dac412547 to your computer and use it in GitHub Desktop.
Save cagricolak/41d5850e7ab519471fc14b3dac412547 to your computer and use it in GitHub Desktop.
basic debugging notes
author: Çağrı ÇOLAK
date: 2019
title: Basic Debugging Notes from packtpub online courses.

Sarı renkli xcode issueları

varsa build error vermesi için build settings alanında treat warnings as error alanını aktif yaparsak issuelar varken build olmaz.

Print statements:

print icerisine; #file, #function, #line yazarak detaylı log alabiliriz. Bunu error exception durumları için kod yazarken kullanabiliriz.

Uygulama crash olduğunda nedenini bulmak için debug konsolda reason: kısmı okunmalı.

Break points

Swift Error breakpoint:

Try catch yazılmayan blokta kod hata verirse, hata gerçekleşmeden hemen önce xcode crash başlangıcını bize gösterir.

Symbolic breakpoint:

Metodun adını bildiğimiz ancak nerelerde çağırıldığını bilmediğimiz zamanlarda kullanabileceğimiz kullanışlı bir yardımcıdır. Metodun adını verdiğimizde hangi sınıfta nerelerde hangi satırda hangi dosyada çağırıldığını bize navigator kısmında gösterir.

Constraint error fixleme:

Konsol ekranımızda constraint error aldığımızda ve bunun hangi ui elemanına ait olduğunu bilmediğimizde expression kullanarak hemen saptayabiliriz.

Yazacağımız kod şu formatta olmalıdır:

ex [(UIView *) 0xMemoryAdres setBackgroundColor: [UIColor yellowColor]]

constraint error veren ui elemanının memory adresini vererek uiview tipine çevirir ve arkaplan rengini değiştirmiş oluruz, böylelikle göze görünür olmuş olur constraintsinde problem olan.

Color blended layers:

Ui elemanlarının arkaplan rengi olmalıdır, şeffaf olmamalıdır. Ui ekleyeceğimiz görseller arkaplanı şeffaf olmamalıdır.

Log function name and hit count:

Bir metodun kaç kez çağırıldığını konsolda çıktı olarak görmek istiyorsak, break point ekleyip metoda log message kısmına aşağıdaki formatı yaz:

%B was called %H times: @variable@

%B = metodun adını yazar %H = kaç kez çağırıldığını yazar @variable@ = işaretler arasına varsa değişken adı yazılır log mesajında gösterilmiş olunur.

Add multiple actions to breakpoint:

Eklemiş olduğumuz breakpoint belli bir kondisyonda çalışmasını istersek:

Condition kısmına aşağıdaki formatta birden fazla kondisyon eklenebilir x == 5 && y / 2 == 0

Instruments:

Temel olarak uygulamalarda kullanılabilecek instruments profil seçenekleri:

  • Memory leaks
  • Memory allocation
  • Time profiler

Instrumentsi açtığımızda profillerin birbirleriyle benzer renkleri aynı kategoride olduklarını gösterir, renkler rastgele verilmemiştir.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment