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

  • Austin Evans

    Austin Evans

    5 AĞUSTOS 2007
  • Glove and Boots

    Glove and Bo

    1 ŞUBAT 2007
  • Numberphile

    Numberphile

    15 EYLÜL 2011