Classlar ile ilgili ilk derslerimizde init ve alloc metodlarının varlıklarından bahsetmiştik. Şimdi sıra ne olduklarına ve nasıl kullanıldıklarına geldi. Bu iki method Objective C yazarken belkide en sık kullanacağımız iki metod olacak. Şu ana kadar bir nesne tanımlarken hep
Class * nesne_adı = [[Class alloc] init];
şeklinde bir kod parçası yazdık. Artık bu metodların ne olduklarını öğreneceğiz ve ihtiyacımıza göre başkalarını tanımlayıp onları kullanacağız.
Alloc Metodu
Alloc metodu başına + alan bir fonksiyondur. Yani - fonksiyonları aksine [Nesne fonksiyon] şeklinde değil [Class fonksiyon] şeklinde çağırılır. Alloc metodu nesne için bellekten yer alır. Yani nesnemiz var olur diyebiliriz. Alloc metodu yazmadan bir nesne oluşturulamaz ve kullanılamaz. ARC dersimizde anlattığımız gibi silme işlemide dealloc metodu ile yapılır. Alloc metodunun yaptığı iş [super alloc]; yani kendi atasının alloc metodunu çağırmak. Atasıda atasını ... Sonuç olarak memory den yer alınmış oluyor.
İnit Metodu
İnit metodu başına - alan bir fonksiyondur. Yani [Nesne fonksiyon] şeklinde çağırılır. Inıt metodunu çağırmak bilgisayara "bu nesneye belirlenmiş standart ölçüleri ata" demektir. Yani bir Classınız olduğunu hayal edin. Bu Classa ait bütün nesnelerin kırmızı renkli olmasını istiyoruz. Inıt metodunun içine kırmızı olma kodunu yazıyoruz o zaman. Inıt metodunun içi şu şekildedir.
- (instancetype)init
{
self = [super init];
if (self) {
// özellikler Buraya
}
return self;
}
- (instancetype)init
{
self = [super init];
if (self) {
self.backgroundColor = [UIColor redColor];
}
return self;
}
Kendi Metodlarımız
Hem alloc metodu yerine hem de init metodu yerine kendi metodlarımızı oluşturabiliriz. Parametreler ekleyebilir adını değiştirebiliriz. Örneğin
+(instancetype)myAlloc
{
return [super alloc];
}
- (id)initWithParameterX:(id)X ParameterY :(id)Y{
self = [super init];
if (self) {
self.x = 3;
self.y = 5;
}
return self;
}
Hiç yorum yok :
Yorum Gönder