Emlak alıcıları ve ayarlayıcıları
Bu basit bir sınıf ile derleyici uyarı "/erişim 'x' kendi ayarlayıcı içinde" ve bu gibi kullanabilirsiniz: . alıcı/değiştirmeye çalışmak alıyorum
var p:point = point()
p.x = 12
Bir EXC_BAD_ACCESS. Nasıl açık destek bugün ivan'ın olmadan bunu yapabilir miyim?
class point
{
var x:Int
{
set
{
x = newValue * 2 //Error
}
get {
return x / 2 //Error
}
}
...
CEVAP
EDİTBu cevap bir kaç upvotes bir yana, Swift belirleyiciler/alıcılar ObjC çok farklı olduğunu açıklamak istiyorum. Özelliği bir hale gelirhesaplanan özellikbunu mu demek oluyordeğilbu ObjC ki gibi _x
gibi destek olan bir değişken var. Çözüm xTimesTwo
mu görebilirsiniz aşağıda kodudeğilbir şey saklamak, ama sadecehesaplarx
sonuç.
Official docs on computed properties bkz.
İşlevselliğini istediğiniz de Property Observers olabilir.
Belirleyiciler/alıcılar Objective-C onlar daha farklı
Ne ihtiyaç vardır:
var x:Int
var xTimesTwo:Int {
set {
x = newValue / 2
}
get {
return x * 2
}
}
Anlamına ne ayarlayıcı/alıcılar, içinde diğer özelliklerini değiştirebilirsiniz.
Neden alıcıları ve ayarlayıcıları kull...
Visual Studio alıcıları ve ayarlayıcıl...
C : İyi Uygulama alıcıları ve ayarlayı...
Python @alıcıları ve ayarlayıcıları öz...
Bir şekilde otomatik olarak Eclipse al...