Я использую swift 2.0, у меня есть протокол и расширение протокола для создания реализации метода по умолчанию, код выглядит следующим образом:
protocol ColorImpressionableProtocol {
var lightAccentColor: UIColor? {get set}
var accentColor: UIColor? {get set}
var darkAccentColor: UIColor? {get set}
var specialTextColor: UIColor? {get set}
mutating func adoptColorsFromImpresion(impresion: ColorImpressionableProtocol?)
}
extension ColorImpressionableProtocol {
mutating func adoptColorsFromImpresion(impresion: ColorImpressionableProtocol?){
lightAccentColor = impresion?.lightAccentColor
accentColor = impresion?.accentColor
darkAccentColor = impresion?.darkAccentColor
specialTextColor = impresion?.specialTextColor
}
}
Позже я в своем коде пытаюсь вызвать этот метод и получаю сообщение об ошибке:
«невозможно использовать изменяющийся член для неизменяемого значения:« я »неизменен»
Код выглядит следующим образом:
init(impresion: ColorImpressionableProtocol?){
super.init(nibName: nil, bundle: nil)
adoptColorsFromImpresion(impresion)
}
Единственное, о чем я могу думать, так это о том, что «Я» в данном случае — это протокол, а не класс. Однако мне нужно что-то упустить, чтобы эта концепция работала. Реализация по умолчанию метода, определенного протоколом, который редактирует значения, также определенные тем же протоколом.
Спасибо за помощь и время :)