ETİKETLER
ios
Basit Makro Tanımları
Objective C dilinde makro, sembolik bir isim altında bir program parçası tanımlamak anlamına gelir. Bir makronun yazılışı şöyledir:
#define MakroAdı MakroKomutları
Makro tanımının en basit hali, MakroKomutları parçasının tek bir sabitten oluşmasıdır.
ÖRNEK:
Objective-C Ön İşlemcisi
Objective-C ön işlemcisi (Preprocessor), Objective-C dilindeki bir kaynak metni, derleme sürecinden önce işleyen bir makro işlemcisidir (macro processor).
Bazı Objective-C dili derleme yazılımlarında, ön işlemci tamamen ayrı bir program olarak oluşturulmuştur ve ön işlemcinin çıktısı bir ara dosya olarak C derleyicisine bir giriş bilgisi oluşturur.
Diğer Objective-C derleyicisi gerçekleştirimlerinde ise, ön işlemci ve derleyici tek bir program halindedir ve yukarıda belirtilen ara dosyanın üretilmesi söz konusu değildir.
Ön İşlemci Komutları ve Makrolar
Ön işlemeyi, program derlenmeden önce gerçekleşen bir süreç olarak niteleyebiliriz. C önişlemcileriye, farklı tiplerdeki verileri ekleyebilir, yerlerinin değiştirebilir, sembolik sabitler ekleyebilir, makrolar ekleyebilir ve koşullu derlemeler yapabilirsiniz.
Makro direktifleri ise derleme öncesi komutlardır. Bu tip komutlar genellikle kaynak kodların başına yazılır.
Süper Sınıftan Alt Sınıf Üretme
NSObject sınıfından X alt sınıfını üretmek için aşağıdaki arayüz (interface) ve uygulama (implementation) kodları yazılır:
@interface X:NSObject
{
int a;
int b;
}
-(void) degerAta;
@end
@implementation X
-(void) degerAta;
{
a=50;
b=80;
}
@end
Miras Alma (Inheritance), Çok Biçimlilik
Bildiğimiz gibi NSObject sınıfı kök sınıftır ve diğer bütün sınıflar bundan üretilir. NSObject kullanılarak bir X sınıfının üretildiğini varsayalım; daha sonra X baz alınarak bir Y sınıfı, Y baz alınarak bir Z sınıfı üretmek mümkündür.
Bu sistematiğe göre NSObject X için bir süper sınıftır (superclass); X ise NSObject’in bir alt sınıfıdır (subclass). Aynı şekilde X, Y için bir süper sınıf; Y'de X için bir alt sınıftır. Y ise NSObject için bir alt-alt sınıftır (su-subclass veya grandchild).
continue Deyimi
continue deyimi, döngü içinde belirli bir koşulun kontrolüyle bir sonraki döngü adımına gidilmesini gerçekleştirir.
ÖRNEK:
Aşağıdaki programda for döngüsünün parametresi olan i değişkeni 3 ile tam bölünemeyen bir değer alınca, bu değer ile işlem yapılmayıp bir sonraki adıma geçilmesi continue deyimi ile sağlanıyor. Böylece program, kullanıcı tarafından girilen bir üst limite kadar, 3 ile bölünebilen sayıların toplamını ve bu tip sayıların adedini buluyor.
İç İçe Döngüler
Bir döngü yapısının içine başka bir döngü yapısının yerleştirilmesiyle elde edilen yapıya iç içe döngü (nested loop) adı verilir.
Objective-C dilinde, if döngülerini herhangi bir derinliğe kadar iç içe kullanmak nasıl mümkünse, döngü deyimlerini de iç içe kullanmak mümkün olur. İç içe döngülerde hatırlamamız gereken anahtar bilgi, önce içteki döngülerin tamamlanması gerektiğidir. Bu konuda aşağıdaki kural iç içe döngüler için daima geçerlidir:
for Döngüsü
for deyimi ve for deyimi kullanılarak oluşturulacak döngü yapısı, işlemlerin tekrar sayısının önceden belli olduğu durumlarda kullanılır.
for deyiminin yazılışı:
for(ifade1;ifade2;ifade3) Deyim;
Deyim_x;
veya
for(ifade1;ifade2;ifade3)
{
Deyim1;
Deyim2;
...
Deyim_n;
}
Deyim_x;
şeklindedir.
do ... while Döngüsü
while deyiminin önemli bir özelliği, test koşulunun döngünün başlangıcında olmasıdır. Bunun anlamı, ilk anda koşulun yanlış (veya sıfır) olması halinde, while gövdesinin hiçbir zaman çalıştırılmayacağıdır. Ancak gövdeyi hiç olmazsa bir kere çalıştırmamız gereken durumlar vardır. Bu durumlar çok yaygın değildir. Fakat gerektiği zaman do...while deyimini kullanmalıyız.
do..while döngü yapısının yazılışı şöyledir:
do{ Döngü1;
Döngü2;