SORU
3 HAZİRAN 2014, Salı


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
3 HAZİRAN 2014, Salı


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.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Bokeh

    Bokeh

    9 HAZİRAN 2014
  • jonathepianist

    jonathepiani

    31 Temmuz 2008
  • TecNoob

    TecNoob

    15 AĞUSTOS 2013