-
iOS Eğitimlerine Başlarken...
-
Objective-C Dilinde Kütüphaneler
-
Objective-C'de Sınıf Arayüzü (Class Interface) Nasıl Tanımlanır?
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler Giriş
-
Sabitlerden Oluşan İfadeler
-
int Türü İfadeler
-
float Türündeki İfadeler
-
Gösterge İfadeleri
-
Gösterge İfadeleri ve Değerleri
-
Operatörlerin Öncelikleri ve Birleşme Sıraları
-
İkili Aritmetiksel Operatörler
-
Aritmetiksel Atama Operatörleri
-
İlişkisel Operatörler
-
Mantıksal Operatörler
-
Bit Düzeyinde İşlem Gören Operatörler
-
Öteleme Operatörleri
-
Bit Düzeyinde Mantıksal Operatörler
-
Bit Düzeyinde İşlem İçin Bir Örnek: Sınav Değerlendirme Programı
-
Bit Düzeyinde Atama Operatörleri
-
Cast Operatörü
-
sizeof Operatörü ve Bir Örnek Program
-
Tekli Operatörler
-
Koşul Operatörü
-
Bellek Operatörleri
-
Objective-C Dilinde Veri Tipleri, İşlem Operatörleri ve Çeşitli İfadeler Giriş
-
Kontrol Yapıları
-
Döngü (Loop) Oluşturma
-
Miras Alma (Inheritance), Çok Biçimlilik
-
Ön İşlemci Komutları ve Makrolar
-
Ön İşlemci Komutları ve Makrolar Giriş
-
Basit Makro Tanımları
-
Objective-C Ön İşlemcisi
-
Makrolarda Argümanlar
-
Önceden Tanımlanmış Değerlere Referans Verme
-
Gerçek Parametrelerde Bir Dizi İfadenin Kullanılması
-
Makro Tanımlamada # ve ## Operatörleri
-
Makro Tanımın İptal Edilmesi: undef Komutu
-
Dosya İçeriklerini Programa Katma: include Komutu
-
Şarta Bağlı Derleme İşlemi: #if Komutu
-
#ifdef Komutu
-
#ifndef Komutu
-
#error ve #pragma Direktifleri
-
Ön İşlemci Komutları ve Makrolar Giriş
-
Diziler ve Sözlük Nesneleri
-
Diziler ve Sözlük Nesneleri Giriş
-
Bir Dizi Nesnesi Oluşturmak
-
Dizideki Eleman Sayısını Bulmak
-
Bir Dizi Nesnesinin Elemanlarına Erişme
-
Dizi Elemanlarına Hızlı Numaralama (Fast Enumeration) Yöntemi ile Erişmek
-
Dizi Nesnesine Eleman Eklemek
-
Dizi Nesnesinde Araya Eleman Ekleme
-
Dizi Nesnesinin Bazı Elemanlarını Silme
-
Dizi Nesnelerini Sıralama
-
Diziler ve Sözlük Nesneleri Giriş
-
Fonksiyonlar
-
Fonksiyonlar Giriş
-
Objective C Dilinde Bir Fonksiyonun Yapısı
-
Fonksiyonların Tanımlanması
-
Fonksiyonlarla İlişkili Terimler
-
return Deyimi
-
Fonksiyon Çağrıları ile İlgili Örnek C Programları
-
Fonksiyon Çağırma Teknikleri
-
Fonksiyonları Değer ile Çağırma
-
Fonksiyonları Referans ile Çağırma
-
İki Boyutlu Dizinin Argüman Olarak Gönderilmesi
-
C Dilinde Özyineli (Rekürsif) Fonksiyonlar
-
Fonksiyonlar Giriş
-
Dinamik Bağlama, id Veri Tipi
-
Bellek Sınıfları
-
Dosya İşlemleri
-
Nesne Yönelimli Programlama
-
Algoritmaya Giriş
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:
Aşağıdaki Objective C programında, C ön işlemcisinin define direktifi ile PI adlı bir sabit tanımlanmış, değeri 3.14159 olarak atanmıştır. Bu sabit daha sonra program içinde kullanıldığında hep aynı değeri gönderecektir.
Sabitlerin bu şekilde define direktifi ile tanımlanması, C programının bir platformdan diğerine taşınabilirliğini sağlar:
#define PI 3.14159
#import <Foundation/Foundation.h>
int main(int argc, char* argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
float r;
NSLog(@"\nDairenin yari capini giriniz..");
scanf("%f",&r);
NSLog(@"\nDAIRENİN ALANI=%f",PI*r*r);
NSLog(@"\nDAIRENIN CEVRESI=%f",2*PI*r);
NSLog(@"\nPI=%f",PI);
[pool drain];
return 0;
}
PROGRAMIN ÇIKTISI:
Dairenin yari capini giriniz..5
DAIRENİN ALANI=78.539750
DAIRENIN CEVRESI=31.415900
PI=3.141590
Yukarıdaki program çıktısından da anlayacağımız gibi, bir string içinde PI’nin geçtiği yere sayısal değeri yerleştirilmiyor. Örneğin yukarıdaki programda NSLog içindeki “ “ sembolleri arasındaki string'de yer alan PI ifadesi ekrana aynen aktarılır.
Stringler de, define direktifi ile bir sabit olarak tanımlanabilirler.
ÖRNEK:
Aşağıdaki Objective C programında A sabiti “EINSTEIN MUSTESNA BIR DAHIDIR” şeklinde tanımlanıyor.
#define A "EINSTEIN MUSTESNA BIR DAHIDIR "
#import <Foundation/Foundation.h>
int main(int argc, char* argv[])
{
NSAutoreleasePool *pool=[[NSAutoreleasePool alloc] init];
NLog(@" \n%s",A);
[pool drain];
return 0;
}
PROGRAMIN ÇIKTISI:
EINSTEIN MUSTESNA BIR DAHIDIR
\ DEVAM SEMBOLÜ
Bir ön işlemci direktifine ait ifade bir sonraki satırda devam edecekse, önceki satırın sonuna \ sembolünü yerleştirerek bu sağlayabiliriz. Örneğin;
#define GLOBAL_DIZI_BOYUTU 5\
12
ifadesi
#define GLOBAL_DIZI_BOYUTU 512
ifadesine denktir.
ÖRNEK:
Aşağıdaki örnek Objective C programı, ön işlemci direktifleri kullanarak C programının tamamen başka bir görünüm içine sokulabileceğini gösteriyor. Örneğin, aşağıdaki program, gerçekte bir Pascal programı listesini andırıyor. Böylece ön işlemci direktifleri kullanmanın bir işlevinin de C programlarına farklı anlatım biçimleri verebilmek olduğunu da vurgulamış olalım.
KOD BLOĞU:
#import <Foundation/Foundation.h>
#define PROGRAM int main(int argc, char*\
argv[])
#define REAL float
#define FORMAT_GIRIS "%f"
#define WHILE while(
#define DO )
#define BEGIN {
#define END }
#define READ scanf
#define WRITE NSLog
#define FORMAT_CIKIS "KARELER TOPLAMI=%10.3f\n"
PROGRAM
BEGIN
REAL sayi,toplam=0.0;
READ(FORMAT_GIRIS,&sayi);
WHILE sayi>=0 DO
BEGIN
toplam=toplam+sayi*sayi;
READ(FORMAT_GIRIS,&sayi);
END
WRITE(@FORMAT_CIKIS,toplam);
END
PROGRAMIN ÇIKTISI:
1
2
3
4
5
-1
KARELER TOPLAMI=55.000000
AÇIKLAMA:
Programda, bilgisayara klavyeden girilen 1’den 5’e kadar sayıların kareleri toplatılarak
12+22+32+42+52=55
değeri hesaplatılıyor.
Negatif bir sayı girişi ile de bilgisayara sayı giriş işlemi sona erdirilebiliyor.