Arayüzünüzde, küme ayraçları arasında veya @propertyküme ayraçlarının dışında veya her ikisi aracılığıyla resmi olarak bir örnek değişkeni tanımlayabilirsiniz . Her iki durumda da sınıfın nitelikleri haline gelirler. Aradaki fark, eğer beyan @propertyederseniz, @synthesizesizin için alıcınızı / ayarlayıcınızı otomatik olarak kodlayan kullanarak uygulayabilirsiniz . Örneğin, otomatik kodlayıcı ayarlayıcı tam sayıları başlatır ve sıfıra atar. Bir örnek değişkeni bildirirseniz ve karşılık gelen bir değişken belirtmezseniz , kendi alıcı / ayarlayıcınızı @propertykullanamazsınız @synthesizeve yazmanız gerekir .
Otomatik kodlu alıcı / ayarlayıcıyı her zaman kendiniz belirleyerek geçersiz kılabilirsiniz. Bu genellikle managedObjectContexttembel olarak yüklenen mülk ile yapılır . Böylece, kendinizi managedObjectContextbir mülk olarak ilan edersiniz , ancak daha sonra bir -(NSManagedObjectContext *)managedObjectContextyöntem de yazarsınız . Bir örnek değişkeni / özelliği ile aynı ada sahip bir yöntemin "alıcı" yöntemi olduğunu hatırlayın.
@propertyBeyan yöntemi ayrıca aşağıdakiler gibi diğer seçenekler, izin verir retainve readonlyörnek değişken bildirim yöntemi değil. Temelde, ivareski yoldur ve @propertyonu genişletir ve daha süslü / daha kolay hale getirir. Kendini kullanarak her ikisine de başvurabilirsiniz. önek olsun veya olmasın, ad o sınıfa özgü olduğu sürece önemli değildir. Aksi takdirde, üst sınıfınız sizinle aynı özelliğe sahipse, o zaman hangi addan bahsettiğinizi belirtmek için self.name veya super.name gibi söylemeniz gerekir.
Böylelikle, ivardiş telleri arasında giderek daha az sayıda insanın s ilan ettiğini ve bunun yerine sadece belirlemeye @propertyve sonra yapmaya yöneldiğini göreceksiniz @synthesize. @synthesizeKarşılık gelmeden uygulamanızda yapamazsınız @property. Sentezleyici, yalnızca @propertyspesifikasyondan ne tür bir nitelik olduğunu bilir . Synthesize ifadesi ayrıca özellikleri yeniden adlandırmanıza olanak tanır, böylece kodunuzun içinde bir özelliğe tek adla (steno) başvurabilirsiniz, ancak .h dosyasının dışında tam adı kullanabilirsiniz. Ancak, XCode'un sahip olduğu gerçekten harika otomatik tamamlamayla, bu daha az bir avantaj, ancak yine de var.
Umarım bu, etrafta dolaşan tüm kafa karışıklığını ve yanlış bilgileri gidermeye yardımcı olur.