obenplus.com | oben+ | Hikayesi bol bir yazılımcının kaleminden, teknoloji dünyasını en önemli ve en ince ayrıntısına kadar takip etmek, bir yazılımcının hayatını, yaşantısını gözlemlemek isteneyenler için...

All posts in Objective C

Objective C ye yeni başlayan ve java , .net kökeninden gelen biri olarak ben de ilk başta çok ilginç gelen bir veri tipi ile karşılaştım : “id”

id” id nin tanımını kendimce, “ne olduğu bilinmeyen nesneye point eden bir pointer” olarak yorumluyorum.

İngilizce anlatımlı kitaplarda geçen tanımı da şu şekilde :  “a reference to some random Objective-C object of unknown class”

Burada benim aklıma ilk şu soru geldi : “Tipini bilmiyorsam nasıl ona emir verebilirim ?” (Objective C Anlatımıyla : Tipi bilinmeyen herhangi bir nesneye point ederken, o nesneye göndereceğim mesaja nasıl karar verebilirim ? ”

Bu sorunun yanıtı aşağıda yazdığım kodda mevcuttur. Burada 2 adet sınıfımız mevcut. Birincisi, StockHolding sınıfı. Bu sınıftan türettiğim diğer sınıf ise, ForeignStockHolding sınıfı. Bu sınıfda, türetilen sınıfda bulunan metodlara overriding işlemi yapıyordum. NSMutableArray olarak tanımladığım dizime birbirinden türeyen iki farklı sınıfa ait 3 farklı nesneyi eklediğimde ve for döngümde “Gelen tip benim için önemli değil ! ” dediğimde, tip kontrolü yapmak için isKindOfClass metodunu kullanabileceğimi öğrendim.

Benzer bir kodu kendiniz de denemek isterseniz kodun text hali aşağıdaki gibidir ;