Я следил за этим tutorial, чтобы узнать, как быстро развивается приложение для приложений iOS. В разделе "Протокол" руководство разработало следующий протокол:
@objc protocol Speaker {
func Speak()
optional func TellJoke()
}
Он говорит Если вы хотите иметь протокол с дополнительными методами, вы должны префикс протокола тегом @objc (даже если ваш класс не взаимодействует с objective-C).
Затем он показывает образец для реализации протокола:
class Vicki: Speaker {
func Speak() {
println("Hello, I am Vicki!")
}
func TellJoke() {
println("Q: What did Sushi A say to Sushi B?")
}
}
Я попробовал вышеуказанный код на игровой площадке xcode, но я получил ошибку компилятора . Тип Vicki не соответствует протоколу Speaker ".
Xcode также выводит текст fix-it, в котором говорится, что "Кандидат не является" @objc ", но для этого требуется протокол.
Теперь я полностью запутался, в руководстве не упоминается эта ошибка вообще. Может ли кто-нибудь объяснить мне все это, чтобы я понял? Спасибо!