Swift: Sınıf'in gerekli üyeleri, üst uygulamıyor
6 beta 5 bugün böyle büyük mükafat için güncelledi ve Apple'ın sınıfların alt sınıflar benim neredeyse tüm hataları aldım fark ettim.
Hata durumları:
'X' üst uygulamıyor gerekli üyeleri . sınıf
Sonrası kolay olacak bu sınıf şu anda çok hafif olduğu için seçtiğim bir örnek.
class InfoBar: SKSpriteNode { //Error message here
let team: Team
let healthBar: SKSpriteNode
init(team: Team, size: CGSize) {
self.team = team
if self.team == Team.TeamGood {
healthBar = SKSpriteNode(color: UIColor.greenColor(), size:size)
}
else {
healthBar = SKSpriteNode(color: UIColor.redColor(), size:size)
}
super.init(texture:nil, color: UIColor.darkGrayColor(), size: size)
self.addChild(healthBar)
}
}
Benim sorum, neden bu hatayı alıyorum, bunu nasıl düzeltebilirim? Uygulanması değilim? Belirlenmiş bir başlatıcı arıyorum.
CEVAP
Bir Apple Geliştirici Forumları çalışan:
"Derleyici bildirmek için bir yol ve inşa programı gerçekten uyumlu NSCoding olmak istemiyorum böyle bir şey yapmak:"
required init(coder: NSCoder) {
fatalError("NSCoding not supported")
}
Eğer uyumlu NSCoding olmak istemediğini biliyorum, bu bir seçenek. Bir film şeridi yükleniyor olmayacağım biliyorum SpriteKit benim kod bir sürü ile bu yaklaşım kiraladım.
Oldukça iyi işler çıkarabilirsin başka bir seçenek gibi bir kolaylık ınıt yöntemi uygulamak için:
convenience required init(coder: NSCoder) {
self.init(stringParam: "", intParam: 5)
}
self
bir başlatıcı için aramayı unutmayın. Bu sadece ölümcül bir hata atmak kaçınırken, isteğe bağlı olmayan tüm özellikleri farklı olarak parametreler için kukla değerleri kullanmak için izin verir.
Tabii ki üçüncü seçenek süper arama yöntemi uygulamak ve isteğe bağlı olmayan özelliklerinizin tüm yapmaktır. Eğer nesne bir görünüm bir film şeridi yükleniyor, eğer bu yaklaşım almalı:
required init(coder aDecoder: NSCoder!) {
foo = "some string"
bar = 9001
super.init(coder: aDecoder)
}
Eclipse Java proje: türü java.lang.Nes...
C "sanal" türetilmiş sınıf f...
ActionBarSherlock - type android.deste...
Nasıl bir sınıf Swift bir Protokole uy...
Sınıf üyeleri için kullanarak akıllı i...