SORU
3 HAZİRAN 2014, Salı


Swift sınıfta hata: Özellik süper değil başlatıldı.başlatma çağrısı

İki sınıf Shape Square var

class Shape {
    var numberOfSides = 0
    var name: String
    init(name:String) {
        self.name = name
    }
    func simpleDescription() -> String {
        return "A shape with \(numberOfSides) sides."
    }
}

class Square: Shape {
    var sideLength: Double

    init(sideLength:Double, name:String) {
        super.init(name:name) // Error here
        self.sideLength = sideLength
        numberOfSides = 4
    }
    func area () -> Double {
        return sideLength * sideLength
    }
}

Ben yukarıdaki uygulama ile hata alıyorum:

property 'self.sideLength' not initialized at super.init call
    super.init(name:name)

Neden super.init aramadan önce self.sideLength ayarlamak zorunda mıyım?

CEVAP
3 HAZİRAN 2014, Salı


Sorunuzun cevabını Swift Programlama Dili, alıntı:

“Swift derleyici dört yararlı güvenlik kontrol emin olmak için yapar iki fazlı başlatma hatası olmadan tamamlandı:”

Güvenlik “belirlenmiş Bir başlatıcı. çünkü her sağlamalıdır kontrol 1 “özellikleri kendi sınıfı tarafından ortaya önce başlatıldı delegeler üst sınıf bir başlatıcı.”

Alıntı: Apple Inc. “Swift Programlama Dili” oyun arasından seçim yapabilirsiniz.. https://itunes.apple.com/us/book/swift-programming-language/id881256329?mt=11

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • glowpinkstah

    glowpinkstah

    16 Mayıs 2006
  • NextGenWindows

    NextGenWindo

    8 Kasım 2011
  • Tire Rack

    Tire Rack

    31 Mayıs 2007