Bu aslında koddan hemen önce açıklanmıştır:
Depolanan basit özelliklere ek olarak, özelliklerde bir alıcı ve bir ayarlayıcı bulunabilir.
class EquilateralTriangle: NamedShape {
...
Başka bir sınıf bu çevre değişkenini almak istediğinde, bunu yaparlar:
let someVar = myTriangle.perimeter
... Bunu çağıran:
get{
return 3.0 * self.sideLength
}
Ve bu nedenle, aslında arayan denetleyicinin bunu yapması gibi:
let someVar = 3.0 * myTriangle.sideLength
Ne zaman ayarlamak başka nesneden değişkeni, bu şuna benzer:
myTriangle.perimeter = 100
Bloktaki kodu çağıran set{}
:
set {
sideLength = newValue / 3.0
}
Ve sanki değişkeni ayarlayan sınıf bunu yapmış gibi:
myTriangle.sideLength = 100/3.0
Bu gerçekten sadece kolaylık sağlamak için - bunu her zaman 3'e bölmek veya 3 ile çarpmak zorunda kalmadan başka bir koddan çağırabilirsiniz, çünkü bu, değişkeni ayarlamadan hemen önce ve değişkeni almadan hemen önce yapılır.
Swift'de, alındığında hesaplanan ve ayarlandığında bir şeyler yapabilen özelliklere sahip olabiliriz. Bunu Objective-C'de de yapabiliriz:
@property (nonatomic) double perimeter;
- (double)perimeter
{
return self.sideLength * 3.0;
}
- (void)setPerimeter:(double)perimeter
{
self.perimeter = perimeter;
self.sideLength = perimeter / 3.0;
}