Örnekte, mapView1
bir bir örneği değişken (ivar) 'de tanımlandığı sınıfının bir örneğine ait bellek depolama parçası example.h
ve example.m
. mapView
bir mülkün adıdır . Özellikleri okumak veya nokta gösterimi kullanılarak ayarlanabilir bir nesnenin nitelikleri şunlardır: myObject.mapView
. Bir mülk bir ivar'a dayalı olmak zorunda değildir , ancak çoğu mülktür. @property
Deklarasyon basitçe adında bir özellik olduğu dünyayı anlatır mapView
.
@synthesize mapView = mapView1;
Bu satır derleyiciye bir ayarlayıcı ve alıcı oluşturmasını söyler ve mapView
çağrılan ivar'ı kullanmaları gerekir mapView1
. = mapView1
Parça olmadan, derleyici, özellik ve ivar'ın aynı ada sahip olduğunu varsayar. (Bu durumda, derlenmiş bir hata üretilir, çünkü çağrılan bir ivar yoktur mapView
.)
Bu @synthesize
ifadenin sonucu, bu kodu kendiniz ekleyip eklemediğinize benzer:
-(MKMapView *)mapView
{
return mapView1;
}
-(void)setMapView:(MKMapView *)newMapView
{
if (newMapView != mapView1)
{
[mapView1 release];
mapView1 = [newMapView retain];
}
}
Bu kodu sınıfa kendiniz eklerseniz, @synthesize
ifadeyi
@dynamic mapView;
Ana şey, ivarlar ve özellikler arasında çok açık bir kavramsal ayırım yapmaktır. Bunlar gerçekten çok farklı iki kavram.