[英]Correct way of initializing stored properties? - Xcode 8.3.3 / Swift 3
我有这样的课:
class Card: CustomStringConvertible {
// Init values
var id: UUID = UUID.init()
var shown: Bool = false
var image: UIImage
var sound: String = ""
init(image: UIImage) {
self.image = image
}
init(sound: String) {
self.sound = sound
}
init(card: Card) {
self.id = (card.id as NSUUID).copy() as! UUID
self.shown = card.shown
self.image = card.image.copy() as! UIImage
self.sound = card.sound
}
为什么在init(sound:String)方法中出现错误(“不初始化所有存储的属性而从初始化返回”)。 据我了解,设置初始值很重要,这就是我所做的。
在您的init(sound: String)
您没有为图像分配任何值。 由于此属性是必需的,而没有可选的。
您有两个选择,使属性为可选:
var image: UIImage? = nil
或为其分配一个新的图像对象:
init(sound: String) {
self.sound = sound
self.image = UIImage()
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.