Objective-C Programlama Dilinin Temel Bileşenleri

Bu bölümde sizlere temel anlamda kullanacağınız veri tiplerinden bahsetmek istiyorum. Tüm dillerde genelde aynı tipler kullanılsa da, farklı isimlendirmeler yapılabiliyor, farklı değerler taşıyabiliyorlar. Objective-C için bu veri tiplerini dilim döndüğünce anlatmaya çalışacağım.

Temel Veri Tipleri

Objective-C dilini kullanırken en çok kullandığımız veri tipleri:

  • int - Integer bir değer alır. Desimal olmayan, 0 ve eksi değerler alabilen bir veri tipidir.
  • float - Para gibi küsüratlı değerler için kullanmamız gereken veri tipi. Örneğin 35,9 yazmak istiyorsanız float tercih etmelisiniz. Bunun daha detaylı versionu olan NSDecimalNumber versiyonu objective-C için özelleştirilmiştir, bunlara farklı bir yazımda değineceğim.
  • BOOL - boolean’ın kısa hali. Alabileceği değerler şunlar: YES/NO, TRUE/FALSE, true/false, 1/0. Hangisinin olumlu hangisinin olumsuz olduğunu anlatmam gerekmez sanırım. :)
  • char - Tek karakterlik bir değer. “A” veya “#” (kısaca harfler ve alfanümerik karakterler) ayrı birer char değeridir. Burada dikkat edilmesi gereken nokta küçük harf büyük harf duyarlılığıdır, yani “a” farklı bir char, “A” farklı bir char’dır.
  • NSString - charların bir arasıyla gelmesiyle oluşan, bildiğimiz string. genelde @ karakteri ile başlar, çift tırnak ile yazılır. Bunun alt fonksiyonlarına yine farklı bir yazıda değinmek gerekir, kapsamlı.
  • NSNumber - Basit rakam tiplerine nesneye dayalı özellikler katmak için oluşturulmuş bir kapsayıcıdır. Bu konuyu da detaylandıracağım. 

Yukarıda ilk bahsettiğim veri tiplerinden int, float, BOOL ve char “sayısal” (obje olmayan) veri tipleridir, bu da basit oldukları ve kullanırken kafa yormaya çok ihtiyaç duymanıza gerek olmadığı anlamına gelir. “Sayısal” derken kastettiğim, bu veri tipleri obje tipleri gibi gelişmiş tipler değildir, olabildiğince basittir. Diğer sayısal veri tiplerine örnek olarak short, double ve long bulunur. Bu değerlere farklı yazımda değineceğim, bu makaleyi elimden geldiğince basit tutmaya çalışıyorum, zamanla hepsini anlatmaya çalışacağım.

NSString ve NSNumber’ın büyük harflerle başlıyor olmasından daha karmaşık veri tipleri olduğunu anlayabilirsiniz. Bunlar aslında birer obje tipidir, kendine has fonksiyonları, farklı kullanım tarzları vardır. Objective-C dilinde bu tarz kompleks veri tipleri genelde büyük harfle başlıyor desem yerinde bir söylem olur diye düşünüyorum. Örneğin NSString olarak oluşturduğumuz bir objeye length mesajı geçerek uzunluğunu alabiliriz. Ancak int veri tipi bu tarz methodlar ile vs. (siz özel olarak böyle bir şey yazmadıysanız) çalışan bir veri tipi değildir. 

NSString ve NSNumber neden “NS” önekiyle başlıyor diye soracak olursanız, (bu konuya ikinci kısımda daha derin değineceğim) Objective-C dilinde tüm classlar aynı yerde toplanıyor. Bu sebeple, aynı isimdeki classlar sıkıntı yaratabileceği için, dili yazan arkadaşlar Objective-C’ye özel methodlar vs barındıran veri tipleri yaratabilmek adına bazı tiplerin başına 2 ya da üç harfli önekler eklemişler. “NS” in çıkış noktası ise, Steve Jobs’un 80lerde Apple’dan kovulduğunda kurmuş olduğu eski şirketi olan “NeXT and NeXTSTEP Coumputer”

Değerler

Programlamada, “değer” kısaca veri tutmamıza yarayan bir kapsayıcıdır diyebiliriz. Objective-C’de değerlerin bir anlam kazanabilmesi için bir veri tipinde oluşturulmuş olması gerekir. Bilgisayar ya da mobil cihazların hafızasında bu kapsayıcılar tutulur ve sonra bunlar üzerinden işlem yaparız.

Kısaca, bir numara kaydedeceksek cihazımıza bu numarayı hangi isimle ve hangi tipte nereye koyacağımızı söyleriz, program çalışacağı zaman gider oraya bakar ve yoluna devam eder. 

Artık ufaktan örneklemeye başlayabilirim:

 

int yazilacakSayi = 21;

 

Yukarıdaki yazıma dikkat ederseniz, int veri tipidir, “yazilacakSayi” buna verdiğimiz isim, “=“ onu eşitleyeceğimi belirten operatör, 24 buna ekleyeceğimiz değer, noktalı virgül ise bu satırda işimizin bittiğini belirten sonlandırıcıdır diyebiliriz.

Obje tiplerine gelince iş çok az farklılaşıyor. Örneğin: 

 

NSString *baslik = @”Objective-C Temelleri”;

 

Yukarıdaki örnekte, bir önceki örnek ile aynı şeyleri söyleyebilirim. Bundan farklı olarak bir * işareti ve bir @ işareti göreceksiniz. Bunlar şunu ifade ediyor:

(*) işareti, ismin bir parçası değil, bir işaretleyici (pointer)’dir. Bu işaretleyici, obje kullandığımız alanlarda cihazın hafızasına “bak bu objeyi aklında tut sorucam” demenin Objective-C’cesidir diyebiliriz. Merak ediyorsanız diğer dillerde pointer kullanımı ile ilgili araştırma yapmanızı tavsiye ederim. Objective-C aslında C’nin biraz daha anlaşılır hale getirilmesi için ortaya çıkarılan bir dildir diye düşünecek olursak, bu pointer mevzusunun da C’den kalan bir yöntem olduğunu da anlamamız kolaylaşabilir.

(@) işaretine yukarıda değinmiştim, biraz deşmek gerekirse Objective-C diline diyoruz ki ben buraya string tanımlıyorum ama C dilindekinden değil, Objective-C dilindekinden. Diğer türlü tanımlayamıyorsunuz zaten ama, maksat açıklama olsun.

Şimdilik veri tipleri ile ilgili bu kadar kafa şişirmek yeter. Yeni yazılarımda ufak ufak detaylandırarak konuyu açıklamaya çalışacağım, bir anda anlatınca anlaşılması zorlaşıyor.

Sevgiyle kalın. 

Erman Ceylan diyor ki:
2.5.2014 10:55:28
Hocam elinize-emeğinize sağlık, devamını bekliyoruz...
Hakan Kara diyor ki:
11.7.2014 17:26:51
Bu ne kadar guzel anlatim umarim devami gelir gelmeli de....

Yorum Gönder

Ad Soyad:
E-Posta:
URL:
Yorum:
© Copyright 2011 Cenk EBRET