top of page

Objective C'de Class Yapilari

  • Writer: Sevdanur GENC
    Sevdanur GENC
  • Jan 30, 2013
  • 3 min read

Bu makalemde, XCode arayuzu ile birlikte objective c dilinde Interface sinif uzerinde olusturmaya calistigim basit bir uygulama ile ogrenci bilgi sistemini IPhone uzerinde calismasi icin yazmaya calisacagim. Bildiginiz uzere .h uzantili siniflarimizda interface class’imiz icin gerekli olan degiskenleri ve methodlarin isimlerini tanimliyoruz. Hemen ardindan da .m uzantili sinifimizda tanimlamis oldugumuz tum bu tanimlamalarin iceriklerini uygulama sinifimiz icerisinde tanimliyoruz. Uygulamamiza baslarken oncelikle XCode’u calistiyoruz. Ardindan Create a new Xcode Project ‘i tikliyoruz. Ardindan IOS altindaki Application menusu icerisinde bulunan Single View Application'i seciyoruz.

                    Karsimiza gelen ekranda projenin ismini belirliyoruz. Devices olarak IPhone'u seciyoruz. Use Automatic Referance Counting (ARC) tikini kaldiriyoruz. Next butonu ile projemizi olusturuyoruz.

                    Olusturdugumuz yeni projeye New->File secenegini kullanarak CoCoa Touch secenegi altindaki Objective-C class ‘i seciyoruz.

        Boylelikle projemize .h ve .m uzantili iki adet class'i vermis oldugumuz isimlerle eklemis olacagiz.

.h uzantili dosyaya Interface sinifimizi hazirliyor olacagiz. Ogrenci bilgileri ile ilgli NSString tipinde isim,soyisim ve bolum degiskenlerini tanimlarken NSNumber tipinde de ogrencinin numarasini tasiyabilecegimiz bir degisken olusturmus oluyoruz. Olusturdugumuz degiskenlerin Getter ve Setter method'larinin interface class'inda olmasi gereken tanimlamalarini yaziyoruz. .m uzantili dosyaya ise .h uzantili interface sinifimizda hazirlamis oldugumuz getter ve setter method'larinin ne ise yarayacagina dair ilgili komutlari method'larin icerisine yaziyoruz. ViewController.h Interface class'imiza IPhone uygulamamiz uzerinde kullandigimiz label'lar, TextField'lar ve Button'lar icin gerekli property tanimlamalarini yapiyoruz. Uygulama icerisinde button ve klavye icin kullanacagim method'larin isimlerimlerini ve tiplerini tanimladiktan sonra ViewController.m dosyasinda bu tanimlamalara ait olan kodlarin ilgili alanlara yazilmasini tamamliyoruz. Bu sinifimiz da artik uygulamamizi gerceklestirebilmemiz icin gerekli olan siniftan nesne olusturulmasi, nesne icerisine veri tanimlamalari ve ilgili sonuclari ekrana yazdirmamiz icin gerekli kodlari yaziyoruz.

Uygulamanin Tasarim Hali;

#import <Foundation/Foundation.h> @interface OgrenciBilgileri : NSObject { NSString * ogrIsim; NSString * ogrSoyisim; NSNumber * ogrNo; NSString * ogrBolum; } - (void) setOgrIsim: (NSString*) newOgrIsim; - (void) setOgrSoyisim: (NSString*) newOgrSoyisim; - (void) setOgrNo: (NSNumber*) newOgrNo; - (void) setOgrBolum: (NSString*) newOgrBolum; - (NSString*) ogrIsim; - (NSString*) ogrSoyisim; - (NSNumber*) ogrNo; - (NSString*) ogrBolum; @end

OgrenciBilgileri.M Kaynak Kodlari;

#import "OgrenciBilgileri.h" @implementation OgrenciBilgileri - (void) setOgrIsim: (NSString*) newOgrIsim{

; ogrIsim = [

initWithString:newOgrIsim]; } - (void) setOgrSoyisim: (NSString*) newOgrSoyisim{

; ogrSoyisim = [

initWithString:newOgrSoyisim]; } - (void) setOgrNo: (NSNumber*) newOgrNo{

; ogrNo = [

init]; ogrNo = newOgrNo; } - (void) setOgrBolum: (NSString*) newOgrBolum{

; ogrBolum = [

initWithString:newOgrBolum]; } - (NSString*) ogrIsim{return ogrIsim;} - (NSString*) ogrSoyisim{return ogrSoyisim;} - (NSNumber*) ogrNo{return ogrNo;} - (NSString*) ogrBolum{return ogrBolum;} - (void) dealloc {

;

;

;

;

; } @end

ViewController.H Kaynak Kodlari;

#import <UIKit/UIKit.h> @interface ViewController : UIViewController @property (retain, nonatomic) IBOutlet UILabel *ogrIsimLabel; @property (retain, nonatomic) IBOutlet UILabel *ogrSoyisimLabel; @property (retain, nonatomic) IBOutlet UILabel *ogrNoLabel; @property (retain, nonatomic) IBOutlet UILabel *ogrBolumLabel; @property (retain, nonatomic) IBOutlet UITextField *ogrIsimText; @property (retain, nonatomic) IBOutlet UITextField *ogrSoyisimText; @property (retain, nonatomic) IBOutlet UITextField *ogrNoText; @property (retain, nonatomic) IBOutlet UITextField *ogrBolumText; @property (retain, nonatomic) IBOutlet UIButton *listeleButton; - (IBAction)yazdir:(id)sender; - (IBAction)hideKeyboard:(id)sender; @end

ViewController.M Kaynak Kodlari;

#import "ViewController.h" #import "OgrenciBilgileri.h" @interface ViewController () @end @implementation ViewController @synthesize ogrIsimLabel; @synthesize ogrSoyisimLabel; @synthesize ogrNoLabel; @synthesize ogrBolumLabel; @synthesize listeleButton; @synthesize ogrIsimText; @synthesize ogrSoyisimText; @synthesize ogrNoText; @synthesize ogrBolumText; - (IBAction)yazdir:(id)sender{ OgrenciBilgileri *kayiAl = [

init];

;

;

;

; ogrIsimLabel.text =

; ogrSoyisimLabel.text =

; ogrNoLabel.text =

; ogrBolumLabel.text =

; NSLog(@"Ogrencinin Adi : %@ ",

); NSLog(@"Ogrencinin Soyadi : %@ ",

); NSLog(@"Ogrencinin Numarasi : %@ ",

); NSLog(@"Ogrencinin Bolumu : %@ ",

); } - (IBAction)hideKeyboard:(id)sender{ NSLog(@"hideKeyboard");

; } @end

Uygulamanin Ekran Goruntuleri;

Uygulamamizi calistirmadan once,Outlets penceresinden kod tarafinda olusturmus oldugumuz degiskenleri uygulamanin tasarim uzerindeki nesnelerin uzerine surukleyip birakiyoruz.

                      Buton ve klavye ile ilgili yazmis oldugumuz method'lari da Received Actions penceresinden isimlerini tutup uygulamanin tasarim uzerindeki yerlerine surukleyip birakiyoruz.

                      Uygulamanin ekran ciktilari asagidaki gibidir.

Recent Posts

See All
Oracle Java Cloud Service Uygulamasi

Bir onceki Oracle Cloud Computing yazisinda bahsettigim gibi JDeveloper Oracle Cloud icin gelistirmis oldugu surumu olan Oracle JDeveloper 11g (11.1.1.6.0) ile kucuk bir uygulama gelistirip bunu oracl

 
 
 
Oracle Cloud Computing Hakkinda

Bulut bilisim konusundaki arastirmalarima devam ederken bu kez solugu Oracle Cloud Computing'de aldim. Bu makalem ve ilerleyen makalelerimde Trial versiyonu ile user tarafini pek yormayan bir yapidan

 
 
 
Nested Parallel Loops

Matrix Multiplication / Matrix Carpma islemlerini OpenMP araciligi ile paralel alanda nasil yapilabilecegini incelerken ayni zamanda for construct'larin nested parallel loops alaninda nasil calistigin

 
 
 

Comments


©2035 by Sevdanur Genc. Powered and secured by Wix

bottom of page