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.
Hiç yorum yok :
Yorum Gönder