SORU
3 HAZİRAN 2014, Salı


Swift willSet ve didSet amacı nedir?

Swift has bir özellik bildirimi sözdizimi C çok benzer#'s:

var foo : int {
    get { return getFoo() }
    set { setFoo(newValue) }
}

Ancak, aynı zamanda willSet didSet eylemler. Bu önce ve pasör denir sonra, sırasıyla denir. Onların amacı, sadece ayarlayıcı içinde aynı kod olabilir o ne düşünüyor?

CEVAP
3 HAZİRAN 2014, Salı


willSet didSet anahtar nokta hala bir şey yapacak otomatik depolama ile bir özellik oluşturmak için mümkün olduğunu ya da ayarlandıktan sonra gibi görünüyor. Aşağıdaki sınıf örneği için:

class Foo
{
    var propertyChangedListener : (Int, Int) -> Void = {
        println("The value of myProperty has changed from \($0) to \($1)")
    }

    var myProperty : Int = 0 {
        didSet { propertyChangedListener(oldValue, self.myProperty) }
    }
}

myProperty otomatik depolama vardır, okunabilir ve yazılı, ama yine de açık destek mağaza kalmadan propertyChangedListener çağırabilir. Bu get 11* *anahtar kelimeler ile mümkün olmaz.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • CaliforniaMetin

    CaliforniaMe

    3 ŞUBAT 2013
  • dirkgently1

    dirkgently1

    13 NİSAN 2006
  • Marques Brownlee

    Marques Brow

    21 Mart 2008