objective c'de constructor kullanımı hiçbir dilde olmadığı kadar gariptir. dilde new diye bir yapı bile olmadığından, constructor'ların isimleri de sabit olmaz. şu şekilde örneklendirirsek:
guzelclass *guzelinstance = [[guzelclass alloc] init];
ifadesiyle yeni bir instance yaratılır. alloc, nesne hiyerarşisinin en tepesindeki nsobject'ten miras alınan bir metod olup instance için hafızada yer yaratır. buradan sonra gelen init metodu constructor metoddur. ancak, bu metodun adının init olması gibi bir mecburiyet yoktur. öyle ki, birçok class'ın birden fazla constructor'ı bile görülmektedir. bununla birlikte, genel pratikte eğer özel bir durum yoksa metod isminin init olarak kullanılması tercih edilir. ekip geiştirmesinin söz konusu olduğu ortamlarda, kullanılan metod isimleri iyi dökümante edilmelidir.
ek olarak başka bir nesneden yeni bir class türetiliyorsa, türetilen class'ın constructor'ı başına
[
super init];
ifadesi eklemek, base class'ın da constructor'ının çalışmasını sağlar.
kıssadan hisse: objective-c kendi işini kendin yap sözünü şiar bellemiş bir dilimizdir.