Ana sayfa Yazılım iOS’a uygulama geliştirin: Objective-C

iOS’a uygulama geliştirin: Objective-C

0

iOS”te uygulama geliştirme serisi – Bölüm IV

Bir önceki makalemizde, Araba adlı bir class yaratıp, class”ın temel öğelerini incelemiştik. Şimdi, bu class”a metodlar ekleyip, class”ı kullanacağız.
 

Metotlar, kod bloklarıdır. Yarattığınız bir metodu çağırdığınızda, metodun içine girdiğiniz kodlar çalışır. Metotlar, veri alabilir ve veri döndürebilir.
 

 

Kod taslağı :
Bu taslakta, ilk satır metodun tanımlandığı satırdır. İlk sözcük olan tamsayı, bu metodun bir tamsayı döndürebileceğini belirtir. Sonra gelen metot adı, metodun adıdır. Metot adından sonra gelen tamsayı1 ve tamsayı2 değişkenleri ise metodun aldığı veridir.
 

Bir alt satır, metodun içeriğidir. Bu metotta, metoda yollanan iki değişkeni toplayıp, döndürüyoruz. Yani metodu çağıran kişiye, metoda verdiği iki veriyi toplayarak geri veriyoruz.
 

Bu değişkenin değeri, 6 olacaktır.
 

Şimdi, bu konsepti Objective-C dilinde yazalım.
 

Yapacağımız şey, yarattığımız arabanın kaç yıllık olduğunu hesaplamak olacak. öncelikle, bir önceki makalede yarattığımız Araba.h dosyasını açarak, instance variable olarak bir tamsayı olan uretimYili”ni ekliyoruz.
 

 

uretimYili değişkeninin önündeki int eki, onun bir integer, yani tam sayı olduğunu belirtiyor. Hatırlayalım : Instance variable”lar, bu class”tan yaratılacak bütün instancelarda, yani örneklerde farklı olarak yer alan bir değişkendir. örneğin, Araba classımızdan 6 tane farklı instance yarattım, hepsinin uretimYili kendine özel olabilir. Aralarında hiç bir bağlantı yoktur.
Gördüğünüz gibi Araba classımıza üç metot ekledik.
 

Objective-C”de metotların tanımları aşağıdaki taslak gibidir ve devam eder. Alınan değişkenler, daha okunaklı bir metot adı olsun diye gördüğünüz gibi metodun adının içindedir. Bir değişken almak istiyorsak, iki nokta üst üste, parantez içinde türü, değişkenin adı yaparız.
 

Birinci metodumuzun başında olan tire, o metodun bir instance metodu olduğunu gösteriyor. Instance metotları, bir classtan bir instance yapıldığında, o instancede olan metotlardır. Aynı instance variablelar gibi. Class metotlarına sonra gireceğiz.
 

 

initWithProductionYear metodun adı, ve yer aldığı tek değişken. Bir tamsayı.
Objective-C”de, classlardan genellikle [[ClassAdı alloc] init] şeklinde instance oluşturulur. Alloc metodu bir class metodudur, daha önceden var olan bir metottur, bizim yazdığımız bir şey değildir. Alloc metodu, hafızada instance”a yer ayırıp, size bir instance döndürür. Bu instance”a yaptığımız init çağırması da, instance”ı şekillendirip döndürür. Biz, initWithProductionYear metodu ile, init metoduna instance”ımızı kendi isteğimize göre şekillendirmesi için ekleme yapacağız.

Objective-C”de olan veri tiplerinden biri de “id” dir. id, basitçe tüm obje veri tiplerini kapsar. Yani, biz id”ye obje olmayan int, float gibi veri tiplerini atayamayız ama, tüm objeleri atayabiliriz. Mesela, Araba classımızın bir instance”ı olacak birAraba objesini, id birAraba = [[Araba alloc] init] olarak belirtebiliriz.
 

initWithProductionYear: metodunda gördüğünüz gibi, metot bir id döndürecektir. Bu init metotlarında bir alışkanlıktır.
 

İkinci metot olan howOld, bir tam sayı döndüren instance metodudur.

üçüncü metot olan subtractYear: fromYear: ise iki tam sayı alan ve bir tam sayı döndüren instance metodudur.
 

 

Şimdi Araba.m dosyasını açıp, bu metotların içini dolduralım.
 

Metotları buraya yazıp, sonundaki noktalı virgül yerine süslü parantez açıp kapatalım. Metotların içindeki kod, süslü parantezlerin içine yazılır. initWithProductionYear metodumuzun içini doldurduk. Bu kod şu an size karışık gelebilir, uretimYili = year; dışındaki kısımları şimdilik önemsemeyin, init metoduna ekleme yaptığımız için yapmamız gereken şeyler onlar. Burada, bizim instance değişkenimiz olan uretimYili”na, metoda aldığımız year değişkeninin içeriğini atıyoruz. Böylece, ileride bu metotla yaratılan instanceların üretim yılını bileceğiz.
 

howOld metodumuzda, basitçe şu an ki tarihi alıp, yılını tarihten ayıklayıp, yılı bir tam sayıya çeviriyoruz. Şu an bu da karışık gelebilir, önemli olan yer renkli yerler. “year” değişkenimizde, şu an ki yılı saklıyoruz.
 

Objective-C”de return komutu, metodu bitirip, ardından gelen şeyi döndür anlamına gelir.

Objective-C”de metot çağırma sentaksı, [alıcı mesaj]dır.
 

 

dediğimizde, alıcı olarak kendimizi (yani howOld metodunun çağırıldığı instance”i) belirtip, kendimize
 
subtractYear: fromYear: diyoruz. Böylece o metodumuzu çağırıyoruz. Bu metodun döndürdüğü değişkeni de, başına getirdiğimiz return komutu ile bir daha döndürüyoruz. Bu metodumuzda, year1 den year2 yi çıkartıp döndürüyoruz. Böylece implementasyonumuz
 
tamamlandı, şimdi class”ın çalıştığını görelim.

 

Araba classımızın olduğu Xcode Ogreniyorum projemizdeki ViewController.m dosyasını açalım. Daha önceden arka plan rengini maviye boyamak için yazdığımız kodun olduğu metot, viewDidLoad metodunun içine bir Araba instance”ı yaratacak ve kaç yıllık olduğunu bize söyleyecek kodu girelim. Tabii, Araba classını kullanmak için ilk önce dosyamıza bir #import direktifi ile Araba classımızı tanıtalım. .m dosyamıza geri dönelim.
 

Araba* birAraba dediğimizde birAraba değişkenimizi yaratıyoruz (yıldıza kafanız takılmasın şimdilik, sadece basitçe obje değişkenleri yaratırken geliyor olarak aklınızda kalsın), ve içeriğinin döndürdüğü Araba instance”ı olarak atıyoruz. Gördüğünüz gibi [[x alloc] init]daki init yerine initWithProductionYear kullandık.
 

Arabamızı gördüğünüz gibi 1983 yılında üretilmiş olarak yarattık. Oraya istediğiniz yılı yazabilirsiniz. Yazdığınız sayı, o metottaki year değişkeni olarak atanacaktır. Metoda değişken yolluyoruz. Sonra, birArabaKacYillik değişkenimize, birAraba instance”ımıza yaptığımız
 

howOld çağrısının döndürdüğü tam sayıyı atıyoruz.

 

Son olarak, birArabaKacYillik değişkenimizi konsola yazdırıyoruz. NSLog”un kullanımına ileride değineceğim.
 

Şimdi projeyi (CMD+R) çalıştıralım, ve konsola bakalım. Böylece, 1983 yılında yapılmış arabamızın 29 yıllık olduğunu öğrendik.
 

Okuduğunuz için teşekkürler, bir daha ki makalede, Araba classımızı kullanan basit bir kullanıcı ara yüzü yapacağız. Bu projeyi dumenci.me/macline dan indirebilirsiniz.
 

 

BİR CEVAP BIRAK

Please enter your comment!
Please enter your name here