У меня есть протокол Foo:
protocol Foo {
func doJob()
}
У меня есть класс, соответствующий протоколу, но у меня есть и собственная переменная name
:
class Bar : Foo {
var name = ""
// conform to protocol
func doJob() {
// implementations
}
}
В моем расширение из Foo
, я хотел бы проверить, является ли self
экземпляром Bar
, если да, я хочу обновить его значение name
.Вот что я попробовал:
extension Foo {
func someJob() {
if self is Bar {
((Bar) self).name = "John"
}
}
}
Но, похоже, компилятор Swift не позволяет этого, компилятор говорит мне: «Последовательные операторы в строке должны быть разделены символом«; », что для меня не имеет смысла,Как добиться того, чего я хочу достичь?