2016-03-15 5 views
0

Я пытаюсь изучить концепцию наследования в Swift и придумал следующий код. У меня не было никаких проблем, изменяющих переменный «numberOfWheels» в подклассе, но когда я попытался изменить переменное «описание» в ошибке подкласса, Xcode дисплея:не может изменить переменную суперкласса «описание»

cannot assign to property "description" is a get only property 

Потому что я относительно новый для Swift, я не может Для решения этой проблемы? Может кто-нибудь, пожалуйста, предоставьте мне пример кода, как решить эту проблему? Большое спасибо за любую помощь!

class Vehicle{ 
    var numberOfWheels = 0 
    var description: String{ 
     return "\(numberOfWheels) wheels" 
    } 
} 

class Bicycle: Vehicle { 
    override init(){ 
     super.init() 
     numberOfWheels = 2 
     description = "\(numberOfWheels) wheels, more is good" 
    } 
} 

enter image description here

ответ

1

description является только для чтения вычислен собственности и, следовательно, не могут быть непосредственно отнесены к. Он обычно используется для обеспечения преобразования строк для класса, который реализует CustomStringConveritble для целей печати. Если вы действительно хотите переопределить description в своем подклассе, вы должны сделать это следующим образом:

override var decsription: String { 
    return "\(numberOfWheels) wheels, more is good" 
} 
Смежные вопросы