Ders 23 : NSLog


Bu dersimizde daha önceden Stringler dersimizde gördüğümüz NSLog() fonksiyonunun işlevlerini göreceğiz. Stringler dersini görmediyseniz başlamadan önce bir bakmanızı tavsiye ederim.


NSLog() Nedir ?

NSLog() Objective-C uygulamaları için konsola çıktı yazdırmamızı sağlayan bir fonksiyondur. Aynı işlemi C de printf() fonksiyonu sağlar. Bu iki fonksiyon neredeyse tamamen benzerdir. 

NSLog() Nasıl Kullanılır ?

NSLog() sizden sadece bir NSString türünden bir parametre ister. Aldığı NSString'i ekrana yazdırır.
  • NSLog( @"Ben bir çıktıyım" );
  • NSLog(@"%@", [NSString stringWithFormat: @"Ben de bir çıktıyım"] );
  • NSLog(@"%@", [NSString stringWithFormat: @"Ben de %d. çıktıyım", 3 ]);

Neden NSLog() Kullanılır ?

NSLog() çıktı yazdırmak demek ise sorumuzu şöylede sorabiliriz "Neden çıktı yazdırmak isteyelim ?" veya "Neyin çıktısını yazdıracağız ?". 

Programda işler ters gitmeye başladığı zaman , kontrol elden çıktığı zaman ve ne yapacağınızı bilmediğiniz zaman breakpoint kullanıyorsunuz. Fakat breakpoint size herşeyi söylemeyebilir. Bir de breakpoint kullanmakla uğraşabilirsiniz. İşte böyle bir zamanda değişkenlerin değerlerini görmek , işlerin ne hale geldiğini görmek için şüphelendiğiniz değişkenin değerini ekrana yazdırırsınız. Bir sorun varsa oraya müdahale edersiniz. Örneğin bir objenin yok olup olmadığından emin olmak için dealloc() fonksiyonunun içine NSLog(@"Ben öldüm");  yazabilirsiniz. Eğer dealloc fonksiyonu çağırılmışsa konsolda "Ben öldüm" yazacaktır. Yani objeniz yok olmuş demektir. Aksi takdirde objeniz hala hayattadır demektir.

NSLog mu Printf mi ?

Her ikiside konsola çıktı yazdıran fonksiyonlar. Fakat tabikide NSLog Objective C için tasarlandığından C için yazılmış printf fonksiyonundan daha işlevsel. Bazı özelliklerini inceleyelim isterseniz.

+ printf fonksiyonu ile bir NSString yazdıramazsınız. Dolayısıyla stringlerin çıktılarını almak için zahmetli işlemler yapmanız gerekir. Oysa NSLog ile bunu kolayca yapabilirsiniz. NSLog kullanmamızın en büyük sebebi budur.

+ printf fonksiyonu küçük harf ile başlar. NSLog ise büyük harfle başladığından daha şekildir.

+ printf kullanırsanız CGRect gibi 4 farklı değere sahip bir objeyi çıktı almak için her değerini ayrı ayrı yazmanız gerekir. Oysa NSLog ile bunu string değerine dönüştürüp direkt olarak yazabilirsiniz.

+ printf C metodu için NSLog kullanmakta fayda var. printf C de tanımlı int , float, char gibi değişkenler için çalışır.  Objective C ile ilgili işlemlerde yetersiz kalacaktır.

- Her şeye rağmen printf daha hızlıdır.

UYARI!  Kod yazarken printf de NSLog da kullansanız kontrol edeceğiniz şeyi kontrol ettikten sonra programdan silmeyi unutmayın. Unutursanız sayıları arttıktan sonra programınızı yavaşlatabilir.



Hiç yorum yok :

Yorum Gönder